Java 如何将sqlite用户函数api与HikariCP一起使用?
我正在使用mybatis/hikaricp访问sqlite数据库 此数据库使用sqlite用户函数扩展数据库功能(通过更新触发器) 使用这种函数,可以按如下方式使用un sqlite jdbc驱动程序:Java 如何将sqlite用户函数api与HikariCP一起使用?,java,sqlite,jdbc,hikaricp,Java,Sqlite,Jdbc,Hikaricp,我正在使用mybatis/hikaricp访问sqlite数据库 此数据库使用sqlite用户函数扩展数据库功能(通过更新触发器) 使用这种函数,可以按如下方式使用un sqlite jdbc驱动程序: Connection connection = DriverManager.getConnection("jdbc:sqlite:" + databasePath); Function.create(connection, "title_sort", new Function() { @
Connection connection = DriverManager.getConnection("jdbc:sqlite:" + databasePath);
Function.create(connection, "title_sort", new Function()
{
@Override
protected void xFunc() throws SQLException
{
result(value_text(0));
}
});
if (conn == null || !(conn instanceof SQLiteConnection))
{
throw new SQLException("connection must be to an SQLite db");
}
如您所见,我们必须使用sqlite drivermanager,它将围绕JDBC4Connection(围绕实现java.sql.Connection的JDBC3Connection)返回sqlite连接包装器
Function.create函数检查连接实例,如下所示:
Connection connection = DriverManager.getConnection("jdbc:sqlite:" + databasePath);
Function.create(connection, "title_sort", new Function()
{
@Override
protected void xFunc() throws SQLException
{
result(value_text(0));
}
});
if (conn == null || !(conn instanceof SQLiteConnection))
{
throw new SQLException("connection must be to an SQLite db");
}
因此,我的问题是:如何将此api与hikaricp结合使用?如下所示:
Connection conn = hikariDataSource.getConnection();
Function.create(connection.unwrap(SQLiteConnection.class),
"title_sort",
new Function() {
@Override
protected void xFunc() throws SQLException {
result(value_text(0));
}
}
);
关键部分是connection.unwrap(SQLiteConnection.class)
如下所示:
Connection conn = hikariDataSource.getConnection();
Function.create(connection.unwrap(SQLiteConnection.class),
"title_sort",
new Function() {
@Override
protected void xFunc() throws SQLException {
result(value_text(0));
}
}
);
关键部分是
connection.unwrap(SQLiteConnection.class)
谢谢!我没有尝试此解决方案,因为我昨天使用JPA/Eclipslink失败,因为展开无法返回SQLiteConnection的实例。但是有了HikariCP,你的解决方案就行了。谢谢!我没有尝试此解决方案,因为我昨天使用JPA/Eclipslink失败,因为展开无法返回SQLiteConnection的实例。但有了HikariCP,你的解决方案就行了。