在cmd中使用服务器启动命令中的用户名和密码进行HSQLDB服务器连接不起作用

问题描述

我正在使用命令提示符将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");

userpassword以外的任何初始数据库设置都以相同的方式定义。例如--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