Java中,如何改变当前数据库到另一个?(Java, how to change current d

2019-07-03 22:01发布

我有一个Java程序连接到MySQL数据库,我怎么可以将当前的数据库更改为相同的连接上不同的一个?

我连接到MySQL这样的:

DriverManager.getConnection("jdbc:mysql://"+server+"/",log,pass);

一些操作后,我想连接到一个不同的MySQL数据库在同一连接上。 我怎样才能做到这一点?

我试着使用:

Statement stat= con.createStatement();
ResultSet r=stat.executeQuery("use mysql"); 

但是,这并不改变所使用的数据库。

Answer 1:

随着中描述MySQL文档 ,你需要使用Connection.setCatalog()切换到另一个数据库。 这也明确地说,你应该执行一个USE <databasename>切换。

这样做的原因警告是,JDBC是一个通用接口,数据库,并为此提供了最常见的任务,包括交换方法catalogs (或databases因为它们是在MySQL)。 JDBC规范/ javadoc中也明确说,人们应该使用API​​对数据库的特定命令(如果两者都可用)。 有几个方面的原因:1)它可以促进与数据库无关的代码,以及2)驱动程序可能会响应的API方法之一在内部做更多的事情。 使用数据库特定的命令可能会导致司机无法正常运作,因为它的内部状态不数据库状态相匹配。

要在通话setCatalog(String)将不会影响现有的语句,如JDBC API文档中规定:

调用setCatalog对先前创建或准备没有影响Statement的对象。 它是限定的数据库管理系统是否准备操作立即发生在当实施Connection方法prepareStatementprepareCall被调用。 为了最大的可移植性, setCatalog一个前应该叫Statement创建或准备。



Answer 2:

你可以在你这样的表名前缀的数据库名称。

例如: db1 has table1db2 has table2

select * from db1.table1, db2.table2;

这将允许你做跨数据库查询



文章来源: Java, how to change current database to another?
标签: java mysql jdbc