在JDBC连接中设置HSQLDB的架构

时间:2013-05-06 05:53:18

标签: jdbc hsqldb

如何在JDBC URL本身中设置HSQLDB的架构。

有点如何在MySQL中使用jdbc:mysql:// localhost:3306 /

- 编辑 -

我当前的数据库网址看起来像这样

jdbc:hsqldb:file:C:\\hsqldb\\dbname

同样在dbanme内部有一个架构newSchema,可以使用它进行设置 设置架构newSchema, 我如何使用jdbc URL本身。

3 个答案:

答案 0 :(得分:1)

你已经尝试过标准协议吗? " JDBC:HSQLDB:HSQL:// [HOST]:[PORT] / myDBName" 你是如何尝试连接的?通过独立的应用程序或通过创建资源? 您可能已经看过这个,但如果没有完成,仍然会检查: http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_connection_url

答案 1 :(得分:0)

我认为需要指定端口号,如图所示//192.0.0.10:9500

答案 2 :(得分:0)

<强>更新

我一直在做更多测试。建议的解决方案似乎无效。

例如;如果我将架构设置为Test我仍然 可能 在该架构中的表上使用SQL。基本上我放在那里的额外东西没有效果,即使我认为它没问题。

   select * from BOOKMARKS;
   SEVERE  SQL Error at '<stdin>' line 5:
   "select * from BOOKMARKS"
   user lacks privilege or object not found: BOOKMARKS

SquirrelSQL有一个初始架构选项,因此查询工作正常。 sqlTool接受URI但不更改/选择架构。有点令人沮丧的是,我看不到如何报告当前使用的模式名称​​ btw

所以这个答案并没有解决问题;我将它留在这里,因为当他们找到一个很好的答案时,它将节省下一个人的时间。

  • 回到绘图板......

原始建议......

我也想这样做。例如,对于mysql,示例是:

mysql -h hostname:port schema

端口号,是每个数据库一个端口。现在在HSQLDB中,URL是目录中的一个数据库(这就是它们拼写它的方式)。这是我提出的解决方案。我有......

  • 数据库: dev
  • 模式
    • 公共
    • 测试

在我的RC文件中,~/.config/sqltool.rc ...

  urlid dev_test
  url jdbc:hsqldb:hsql://localhost/dev;set schema test;
  username programmer
  password secret

我可以使用连接ID dev_test 链接到test架构,正常默认值为public。您可以使用以下命令运行sql工具:

  java -jar  /usr/lib/hsqldb/lib/sqltool.jar   --rcFile=~/.config/sqltool.rc  dev_tmp

该方法适用于Groovy Sql 连接:

url:  'jdbc:hsqldb:hsql://localhost/dev;set schema test',
 ...

正如我想要的那样。所以我可以做的是将我想要的模式附加到该URL连接字符串字符串。它可能不是解决方案,但它会做你所描述的。

查看connection protocol:架构和目录都没有选项。因此,目录将成为您的URL的一部分,例如。如果您使用文件库数据库,那就是一个目录。