0

Trying get Hikari Pool :

final static String DB_URL = "jdbc:hsqldb:hsql://localhost/dbone";
final static String DRIVER = "org.hsqldb.jdbc.JDBCDriver";
final static String DS_DRIVER = "org.hsqldb.jdbc.JDBCDataSource";

public static HikariConfig hikariConfig = new HikariConfig();
public static HikariDataSource hikariDataSource ;
public static HikariConfig getHikariConfig() {
    /*Case 1 : Using ONLY DS_DRIVER */
    hikariConfig.setDataSourceClassName(DS_DRIVER);

    /*Case 2 : using ONLY normal Url for DriverManager*/
    hikariConfig.setJdbcUrl(DB_URL);

    hikariConfig.setMaximumPoolSize(100);
    hikariConfig.setConnectionTimeout(30000);
    hikariConfig.setTransactionIsolation("TRANSACTION_REPEATABLE_READ");
    hikariConfig.setValidationTimeout(5000);

    return hikariConfig;
}

public static HikariDataSource getDataSource(){
    hikariDataSource = new HikariDataSource(getHikariConfig());

    return hikariDataSource;
}

Using static call to get a connection :

in case (2) ClassName.hikariDataSource.getConnection(); I get the connection

But in case 1 I get this exception

Caused by: java.sql.SQLException: Invalid argument in JDBC call: url: null

why is that ?

Aluan Haddad
  • 29,886
  • 8
  • 72
  • 84
Mohd
  • 191
  • 3
  • 14
  • Probably because it needs the name of the DataSource. The name is not obvious when only the URL is given. – fredt Mar 31 '18 at 08:01

1 Answers1

0

If you want to use by datasource class name you should add datasource properties as:

 config.setDataSourceClassName(DS_DRIVER);
 config.addDataSourceProperty("serverName", "localhost");
 config.addDataSourceProperty("port", "1521");
 config.addDataSourceProperty("databaseName", "dbone");
 config.addDataSourceProperty("user", "<yourUser>");
 config.addDataSourceProperty("password", "<yourPassword>");
Ori Marko
  • 56,308
  • 23
  • 131
  • 233