2017-04-20 127 views
2

我使用此代碼與Sql服務器建立連接,並且當我使用Class.forName(驅動程序)時它出現錯誤 它正確連接,但我更喜歡使用DataSourse。與jtds錯誤的Sql服務器的Java連接

static final BasicDataSource dataSource = new BasicDataSource(); 


static { 
    dataSource.setDriverClassName("net.sourceforge.jtds.jdbc.Driver"); 
    dataSource.setUrl("jdbc:jtds:sqlserver://Mypc/Mydb;instance=SQLEXPRESS;"); 
    dataSource.setUsername(""); 
    dataSource.setPassword(""); 


} 

public static void main(String[] args){ 
    try{ 
dataSource.getConnection(); 
} 
    catch (SQLException ex){ 
     System.out.println(ex); 
    }} 


public static Connection getConnection() throws SQLException { 
    return dataSource.getConnection(); 
} 

和我得到這個

Exception in thread "main" java.lang.AbstractMethodError 
at net.sourceforge.jtds.jdbc.JtdsConnection.isValid(JtdsConnection.java:2833) 
at org.apache.commons.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:918) 
at org.apache.commons.dbcp2.PoolableConnection.validate(PoolableConnection.java:283) 
at org.apache.commons.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:357) 
at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2307) 
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2290) 
at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2039) 
at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533) 
+0

嘗試設置驗證查詢:'dataSource.setValidationQuery( 「SELECT 1」)' – Berger

+1

[Tomcat 8上的jTDS JDBC驅動程序的AbstractMethodError的可能重複](http://stackoverflow.com/questions/41231750/abstractmethoderror-with-jtds-jdbc-driver-on-tomcat-8) – Berger

回答

2

您必須添加validationQuery="select 1"dataSource

dataSource.setValidationQuery("select 1");