5

I use this code to make a connection with Sql server and i get that error when i use Class.forName(driver) it connect correctly but i prefer to use DataSourse.

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();
}

and i get this

 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)
user3328090
  • 63
  • 1
  • 6
  • Try setting a validation query : `dataSource.setValidationQuery("SELECT 1") ` – Arnaud Apr 20 '17 at 09:20
  • 1
    Possible duplicate of [AbstractMethodError with jTDS JDBC Driver on Tomcat 8](http://stackoverflow.com/questions/41231750/abstractmethoderror-with-jtds-jdbc-driver-on-tomcat-8) – Arnaud Apr 20 '17 at 09:21
  • check this https://stackoverflow.com/questions/42247864/configure-hikaricp-in-spring-boot-with-jtds – Arun VC Feb 28 '23 at 06:23

1 Answers1

12

You have to add validationQuery="select 1" to your dataSource

dataSource.setValidationQuery("select 1");
Youcef LAIDANI
  • 55,661
  • 15
  • 90
  • 140
AMB
  • 995
  • 1
  • 12
  • 26