当我尝试使用 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();
}
}
}
如果我执行此代码,我将拥有我的条目+新的条目,我已将其插入到我的数据库中。 但是,如果我只执行executeQuery(),我插入的行不在我的数据库中。 我检查过,autoCommit 为 true。
...我不明白发生了什么事。
(我是法国人,所以如果有一些英语错误,我很抱歉)
最佳答案
executeUpdate
用于 INSERT,而不是 executeQuery
。并且它不返回ResultSet
;它是受影响的行数。
关于Java 和 HSQLDB INSERT TO 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6916994/