当前位置: 首页 > 面试题库 >

Java,如何将当前数据库更改为另一个?

籍英叡
2023-03-14
问题内容

我有一个与MySQL数据库的Java程序连接,如何在同一连接上将当前数据库更改为另一个数据库?

我这样连接到MySQL:

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

经过一些操作后,我想在同一连接上连接到另一个mysql数据库。我怎样才能做到这一点?

我尝试使用:

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

但这不会更改要使用的数据库。


问题答案:

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

发出此警告的原因是JDBC是数据库的通用接口,因此JDBC提供了用于大多数常见任务的方法,包括切换catalogs(或databases在MySQL中如此)。JDBC规范/
javadoc还明确指出,人们应该通过数据库特定的命令来使用API​​(如果两者均可用)。造成这种情况的原因有很多:1)它促进了与数据库无关的代码,2)驱动程序可能会在内部对API方法之一做出额外的响应。使用特定于数据库的命令可能会导致驱动程序出现异常,因为其内部状态与数据库状态不匹配。

调用setCatalog(String)不会影响现有语句,如JDBC API文档中所指定:

调用setCatalog对先前创建或准备的Statement对象无效。它是限定的数据库管理系统是否准备操作立即发生在当执行Connection方法prepareStatementprepareCall调用。为了获得最大的可移植性,setCatalog应在Statement创建或准备a之前调用它。



 类似资料:
  • 问题内容: 我在Windows 7上,对这个数据库东西有些陌生。我尝试在Google上搜索如何将时区从我的系统更改为UTC,但是文档有些高级,因此我不太确定如何更改此字段。 问题答案: 在my.ini文件的[mysqld]部分下,添加以下行: 重新启动服务器。您还可以在运行时从命令行使用以下命令进行设置 MySql的文档

  • 本文向大家介绍如何在Ubuntu 16.04上将MySQL数据目录更改为另一个位置,包括了如何在Ubuntu 16.04上将MySQL数据目录更改为另一个位置的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将学习如何更改MySQL数据目录或将MySQL数据库数据重新放置到新位置,当数据库增长非常快时,或者出于某些安全原因,我们想移动数据目录时,可能会使用这种情况。到新位置。 先决条件 具有

  • 问题内容: 我有一个数据库(),其中有数十个数据库,每个数据库都有许多(平均10-20),数据类型设置为。这绝对是致命的性能(其中一些列用于其中,某些表具有100K+行)。我想将所有这些列更改为。自动执行此操作的最佳方法是什么?(我可以使用,也可以创建一个实用程序来通过可访问db的网站执行此操作,以较容易的为准)。 问题答案: 这是一个工作脚本,用于查找所有列并将其转换为: 这是我曾经宽恕过的唯一

  • //MySQL,,mysql -v select version(); //Oracle select * from v$version;

  • 问题内容: 如何创建数据库触发器以将行更改记录到H2中的另一个表? 在MySQL中,这可以轻松完成: 问题答案: 声明此触发器: 使用Java / JDBC实现触发器: 用jOOQ实现触发器: 由于您在问题中添加了jOOQ标记,因此我怀疑这种替代方法也可能是相关的。您当然可以在H2触发器内使用jOOQ:

  • 我正在尝试更改JTable中具有特定值的单元格,以更改为另一个值。但是,原始值是Double数据类型,我想更改为String数据类型。我写了下面的代码来更改文本,但我不知道为什么所有的值都不能匹配if语句条件。 这就是我的数据存储在文本文件中的方式:Name,N/a,-1.0 我想把-1.0改为N/A。这是我的代码: