现在我正在用Java编写一个程序,它将作为插件插入现有的应用程序中。 我想在我的插件中使用JDBI(因为它非常舒服并且我已经习惯了)并且需要连接到MySQL数据库。
通常在包含驱动程序后工作正常,但现有应用程序存在问题。显然它已经有一个mysql驱动程序,但是已经过时了。
这会导致错误,并且无法向数据库发送查询。 (错误已知:旧驱动程序已弃用不能与新MySQL版本一起使用的方法)
我认为对我的罐子进行着色会有所帮助(我使用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
?
答案 0 :(得分:1)
您可以使用DataSource
api代替。你不必做Class.forName
(我觉得icky)。 MySQL DataSource实现有一个setUrl
方法,需要jdbc:mysql://...
。然后,您可以将DataSource
传递给DBI
。这是一个例子:
MysqlDataSource ds = new MysqlDataSource();
ds.setUrl(dbUrl);
DBI dbi = new DBI(ds);