- 论坛徽章:
- 0
|
请先看错误吧...说不能装载驱动....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 |
|