2

现在我正在用 Java 编写一个程序,它将作为插件插入现有的应用程序。我想在我的插件中使用 JDBI(因为它很舒服而且我已经习惯了)并且需要连接到 MySQL 数据库。

通常在包含驱动程序后可以正常工作,但是现有应用程序存在问题。显然它已经有一个 mysql 驱动程序,但是已经过时了。

这会导致错误并导致无法向数据库发送查询。(已知错误:旧驱动程序已弃用无法与新 MySQL 版本一起使用的方法)

我认为对我的 jar 进行着色会有所帮助(我正在使用 maven),但错误仍然存​​在。但是我知道我的驱动程序的阴影名称,我只需要知道如何加载它,这样 JDBI 就会使用它。现在我有这样的事情:

Class.forName("myapp.mysql.jdbc.Driver").newInstance();

DBI dbi = new DBI(String.format("jdbc:mysql://localhost/test", username, password);

我该怎么做才能告诉 jdbi 它必须使用myapp.mysql.jdbc.Driver

4

1 回答 1

1

您可能可以改用DataSourceapi。你不必这样做Class.forName(我觉得这很恶心)。MySQL DataSource 实现有一个setUrl方法,它采用jdbc:mysql://.... 然后你可以将 传递DataSourceDBI. 这是一个例子:

MysqlDataSource ds = new MysqlDataSource();
ds.setUrl(dbUrl);
DBI dbi = new DBI(ds);
于 2015-03-20T20:36:53.147 回答