2017-04-20 91 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");