【发布时间】:2015-07-20 08:10:40
【问题描述】:
我尝试将一些数据放入我的 H2 数据库中,但我在数据库中完全是个菜鸟,所以它在一个多小时以来一直抛出错误。 通常我可以以某种方式修复它,但现在我遇到了一个我尝试使用的新问题 getGeneratedKeys() 首先我尝试使用 AUTO_INCREMENT(1,1) 但这并没有太大的功能,但它不能正常工作。
我的程序抛出的异常是
org.h2.jdbc.JdbcSQLException: Funktion "GETGENERATEDKEYS" nicht gefunden 未找到函数“GETGENERATEDKEYS”; SQL 语句: 插入 logTbl 值(getGeneratedKeys(),Webservice->startThread0: Thread0) [90022-173]
我的数据库函数如下所示
public void createTable(String Log) {
try {
Class.forName("org.h2.Driver");
} catch (ClassNotFoundException e) {
System.err.println("TREIBER FEHLER");
e.printStackTrace();
}
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:h2:~/DBtest/Logs");
Statement stat = conn.createStatement();
stat.execute("CREATE TABLE IF NOT EXISTS logTbl(ID INT PRIMARY KEY, LOG VARCHAR(255))");
//stat.execute("insert into test values(1, 'Hello')");
for (int i = 0; i < 20; i++) {
stat.execute("insert into logTbl values( getGeneratedKeys()," + Log + ")");
}
stat.close();
conn.close();
} catch (SQLException e) {
System.err.println("SQL FEHLER");
e.printStackTrace();
}
}
希望你能帮我解决我的错误,因为我说我是全新的,只是有一些代码示例作为“教程”,因为我没有找到好的教程
【问题讨论】:
-
getGeneratedKeys()是PreparedStatement类的Java 方法,它不是 SQL 函数,因此不能在SQL 语句中使用它。 See the JavaDocs 和 JDBC tutorial 了解详情 -
啊,太好了,谢谢 :D 我会努力理解,但这并不容易