我正在使用HSQLDB
和Spring
。每当我尝试执行insert语句时,我都会收到错误user lacks privilege or object not found: USERS
。
USERS
表格中存在HSQLDB Database
表格,但我遇到此错误。
HSQLDB Configuration
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
<property name="url" value="jdbc:hsqldb:mem:."/>
<property name="username" value="SA"/>
<property name="password" value=""/>
</bean>
OffersDAO.java
public class OffersDAO {
private JdbcTemplate jdbcTemplate;
@Autowired
public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public void addUser(String email, String password) {
String sql = "INSERT INTO USERS(EMAIL, PASSWORD) VALUES(?, ?)";
jdbcTemplate.update(sql, email, password);
System.out.println("ADDED USER : " + email + " , " + password);
}
}
答案 0 :(得分:0)
网址“jdbc:hsqldb:mem:。”表示在Java进程中可见的内存数据库,该数据库连接到该数据库。当您从程序中单独启动DatabaseManager时,相同的URL会在DatabaseManager的Java proecess中创建不同的数据库。
使用HSQLDB服务器从两个不同的进程访问数据库。
答案 1 :(得分:0)
HSQLDB具有名为PUBLIC的默认架构。所有SQL查询都将指向PUBLIC;如果您已创建自己的架构,例如: OWNSCHEMA ,则编辑xxx.script并更改以下行
设置数据库默认初始模式公众
到
设置数据库默认初始模式OWNSCHEMA