问题描述
我正在使用命令提示符将db_name作为MDB并将凭据作为user = test和password = test来启动hsqldb服务器:
java -cp hsqldb.jar org.hsqldb.server.Server --database.0 file:/E:/DB/mdb --dbname.0 mdb user=test
password=test
它启动服务器没有错误,但是当我在Java代码中使用相同的凭据时
con = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mware;file:E:/DB/mdb","test","test");
它将引发异常:
{java.sql.sqlInvalidAuthorizationSpecException: invalid authorization specification - not found: test
at org.hsqldb.jdbc.JDBCUtil.sqlException(UnkNown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(UnkNown Source)
at org.hsqldb.jdbc.JDBCConnection.<init>(UnkNown Source)
at org.hsqldb.jdbc.JDBCDriver.getConnection(UnkNown Source)
at org.hsqldb.jdbc.JDBCDriver.connect(UnkNown Source)}
请帮助
解决方法
启动服务器的正确方法是:
java -cp hsqldb.jar org.hsqldb.server.Server --database.0 file:/E:/DB/mdb;user=test;password=test --dbname.0 mware
连接应该是这样的:
con = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/mware,"test","test");
除user
和password
以外的任何初始数据库设置都以相同的方式定义。例如--database.0 file:/E:/DB/mdb;user=test;password=test;hsqldb.tx=mvcc
。这些属性将应用于新的数据库,以后可以使用SQL语句进行更改。参见http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_db_operations