在这个Java项目中,我想尝试使用HikariCP,看看我是否愿意。
起初看起来很简单,但是当我真正尝试运行我的应用程序时,它就出错了。以下代码是我DatabasePool.java
HikariConfig configuration = new HikariConfig();
configuration.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/testdb");
configuration.addDataSourceProperty("serverName","127.0.0.1");
configuration.addDataSourceProperty("port", 3306);
configuration.addDataSourceProperty("databaseName", "testdb"));
configuration.addDataSourceProperty("user", "root");
configuration.addDataSourceProperty("password", "123");
configuration.setDriverClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
this.database = new HikariDataSource(configuration);
return true;
由于某种原因,当它运行时,我得到以下错误:
[main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-0 - is starting.
[main] WARN com.zaxxer.hikari.util.DriverDataSource - Registered driver with driverClassName=org.mariadb.jdbc.MySQLDataSource was not found, trying direct instantiation.
[main] WARN com.zaxxer.hikari.util.DriverDataSource - Could not instantiate instance of driver class org.mariadb.jdbc.MySQLDataSource, trying JDBC URL resolution
java.lang.ClassCastException: org.mariadb.jdbc.MySQLDataSource cannot be cast to java.sql.Driver
我检查了我的项目中是否存在该类,确实如此。我真的不能想到这个原因。
我是Java的新手,所以我不知道我是否提供了足够的信息。如果情况并非如此,请说明。
答案 0 :(得分:2)
DataSource
不是Driver
。请改用setDataSourceClassName()(我似乎还记得推荐它超过setDriverClassName()
)。
答案 1 :(得分:0)
import ru.steklopod.repositories.ConnectionAccesNamesStore._
def init(): Unit = {
val dataSource: DataSource = {
val ds = new HikariDataSource()
ds.setDriverClassName(DRIVER_MARIA_DB)
ds.setJdbcUrl(URL_MARIA)
ds.setPassword(PSWRD_MARIA)
ds.setUsername(LOGIN_MARIA)
ds
}
ConnectionPool.singleton(new DataSourceConnectionPool(dataSource))
}
object ConnectionAccesNamesStore {
currentSchema=" + SHEMA_NAME
val URL_MARIA = "jdbc:mariadb://127.0.0.1:3306/test"
val DRIVER_MARIA_DB = "org.mariadb.jdbc.Driver"
var LOGIN_MARIA = "root"
val PSWRD_MARIA = "root"
}
答案 2 :(得分:0)
在 spring boot 应用程序中使用以下配置,并在application.yml中使用YAML配置。
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test
username: root
password: root