HSQLDB登录验证问题

时间:2011-02-22 09:54:14

标签: java spring hsqldb

您好我使用spring进行hsqldb数据库的数据源配置。我的春豆是:

<bean id="adapterDataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
        <property name="url" value="jdbc:hsqldb:file:data/db/hsqldb.jar" />
        <property name="username" value="lmexadapterdba" />
        <property name="password" value="lmexadapterdba123#" />
</bean>

数据源中的每件事都很好,但是当我在服务器上运行我的项目时,它会给我一个错误:

java.sql.SQLException: User not found: LMEXADAPTERDBA
    at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
    at org.hsqldb.jdbc.jdbcConnection.<init>(Unknown Source)
    at org.hsqldb.jdbcDriver.getConnection(Unknown Source)
    at org.hsqldb.jdbcDriver.connect(Unknown Source)
    at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
    at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:294)
    at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1266)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1240)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:882)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:381)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:455)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:463)
    at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:471)
    at com.platysgroup.lmex.controller.LoginController.processLogin(LoginController.java:72)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)

但我有一个名为lmexadapterdba的用户,但小写不是大写的。 bca hsqldb将其转换为大写它不起作用。请帮我解决这个问题。

谢谢。

1 个答案:

答案 0 :(得分:1)

在HSQLDB 2.x中,用户名和密码区分大小写。您应该使用双引号作为用户名,使用单引号进行密码定义:

CREATE USER "lmexadapterdba" PASSWORD 'lmexadapterdba123#'

如果您不使用双引号,则在创建时将用户名转换为全大写。

在HSQLDB 1.8及更早版本中,用户名不区分大小写。它在创建时被转换为全大写。