免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3417 | 回复: 8
打印 上一主题 下一主题

熟悉dbcp的请进... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-17 17:19 |只看该作者 |倒序浏览
请先看错误吧...说不能装载驱动....jtds和microsoft的包我都加进来了..两种方式都报这个错误..请高手指点..
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.sql.DataSource;
import net.sourceforge.jtds.jdbc.Driver;
import org.apache.commons.dbcp.BasicDataSource;

public class DBPool {
    static DataSource dataSource = null;
   
    public static DataSource setupDataSource( String sDrvName, String sUserName,
            String sPwd, String connectURI ) {
        BasicDataSource ds = new BasicDataSource();
        ds.setDriverClassName( sDrvName );
        ds.setUsername( sUserName );
        ds.setPassword( sPwd );
        ds.setUrl( connectURI );
        ds.setMaxActive( 50 );
        ds.setMaxIdle( 10 );
        ds.setMaxWait( 10000 ); // 10 seconds
        return ds;
    }
   
    // static init of the class
    static {
        try {
            System.setProperty( "jdbc.drivers", "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
            /*Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
            DriverManager.registerDriver(new net.sourceforge.jtds.jdbc.Driver());
            dataSource = setupDataSource( "net.sourceforge.jtds.jdbc.Driver", "sa",
                    "123", "jdbc:jtds:sqlserver://localhost:1433/testDB" );
             **/
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver";
            dataSource = setupDataSource("com.microsoft.jdbc.sqlserver.SQLServerDriver", "sa",
                    "123", "jdbc:microsoft:sqlserver://localhost:1433/testDB";
        } catch (Exception e) {
            System.out.println( "DBConnect.java => Unable to load driver."  + e.getMessage() );
        }
    }
   
    /**
     * 取得 DB Connection.
     */
    public static Connection getConnection() throws SQLException,ClassNotFoundException {
        BasicDataSource bds = (BasicDataSource) dataSource;
        System.out.println("NumActive: " + bds.getNumActive() + ","
                + "NumIdle: " + bds.getNumIdle() );
        return dataSource.getConnection();
    }
   
    public static void main(String[] args) {
        try {
            System.out.println(DBPool.getConnection());
        } catch (SQLException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }
    }
}

错误消息

org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:766)
        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
        at com.dbcp.dbpool.DBPool.getConnection(DBPool.java:64)
        at com.dbcp.dbpool.DBPool.main(DBPool.java:69)
Caused by: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:18
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:164)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:760)
        ... 3 more

论坛徽章:
0
2 [报告]
发表于 2006-08-18 17:19 |只看该作者
还没人回帖啊......别等到一千年以后世界早已没有我....

论坛徽章:
0
3 [报告]
发表于 2006-08-19 01:22 |只看该作者
ClassNotFoundException 说明你classpath设置不对。把你的classpath设置贴出来

论坛徽章:
0
4 [报告]
发表于 2006-08-19 01:47 |只看该作者
原帖由 Kete_Leung 于 2006-8-17 17:19 发表
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver



把JDBC package加到classpath

论坛徽章:
0
5 [报告]
发表于 2006-08-20 13:38 |只看该作者
驱动加了啊...包肯定加进去了..因为我import的时候都能找到啊..

我的是netbeans5.0工具我把包加到工程里了啊..问题是很奇怪啊..

和以前连接数据库的加包方式一样啊..但这次就说找不到啊..

论坛徽章:
0
6 [报告]
发表于 2006-08-21 23:05 |只看该作者
开发和运行环境是不一样的

论坛徽章:
0
7 [报告]
发表于 2006-08-22 01:35 |只看该作者
原帖由 Kete_Leung 于 2006-8-20 13:38 发表
驱动加了啊...包肯定加进去了..因为我import的时候都能找到啊..

我的是netbeans5.0工具我把包加到工程里了啊..问题是很奇怪啊..

和以前连接数据库的加包方式一样啊..但这次就说找不到啊..

编译能找到,不代表运行也能找到,这是两个不同的环境。

论坛徽章:
0
8 [报告]
发表于 2006-08-24 11:39 |只看该作者
确实没找到,你关注一下netbeans启动你的应用的时候,有没有把classpath加上
偶用idea也碰到过这样的问题,看上去设置都没问题,就是找不到~~能给你郁闷上几天。。但是最后还总有那么个小地方,疏漏了

论坛徽章:
0
9 [报告]
发表于 2006-08-25 13:38 |只看该作者
楼上的是我的偶像 顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP