0
我有一个问题,当我试图将数据插入到HSQLDB使用Java类: 的代码是:Java和HSQLDB接入到问题
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.ParseException;
public class Main {
public static void main(String[] args) throws ParseException {
try {
Connection con = null;
String url = "jdbc:hsqldb:file:../db/db";
Class.forName("org.hsqldb.jdbcDriver");
con = DriverManager.getConnection(url, "sa", null);
Statement statement = con.createStatement();
Statement stm1 = con.createStatement();
statement.executeUpdate("INSERT INTO \"vacDeGroupe\"(\"type\") VALUES ('test')");
ResultSet rs = stm1.executeQuery("SELECT * FROM \"vacDeGroupe\"");
while(rs.next()) {
System.out.println(rs.getString("type"));
}
stm1.close();
statement.close();
con.close();
}
catch(ClassNotFoundException e) {
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
如果我exec的这段代码我有我的项目+新的我有INSERT INTO我的数据库。 但是,如果我只执行executeQuery()后,我插入的行不在我的数据库中。 我检查过,autoCommit是正确的。
......我不明白发生了什么事。
(我是法国人,所以我很抱歉,如果有一定的英文错误)
谢谢我已经改变了这一点,但这只是一个错误,在我的测试过程中介绍了为什么它不起作用。 问题仍然是:当我执行“插入到”和executeQuery它的工作,我可以阅读我插入的新行,但是当(执行代码插入行后)我只执行executeQuery我没有我之前插入的所有表格。 所以我认为在插入表格时存在问题,但我不明白在哪里以及为什么...... 我希望你能理解这个问题。 – Firebayll
OK,finaly我找到了答案在其他职位: 我已经用两个选项启动了连接: hsqldb.write_delay =假 关机=真 所以我加入他们在我的字符串URL: 字符串url =“jdbc:hsqldb:file:../ db/db; hsqldb.write_delay = false; shutdown = true”; 它的工作原理! – Firebayll