【问题标题】:How to empty Table with HSQLDB?如何用 HSQLDB 清空表?
【发布时间】:2012-05-09 12:26:52
【问题描述】:

我编写了这些 java 代码行来清空我的应用程序表,但是 执行后没有任何反应。

Class.forName("org.hsqldb.jdbc.JDBCDriver"); 
Connection con = DriverManager.getConnection("jdbc:hsqldb:file:ordini", "root", "root");
Statement stmt = con.createStatement();
if(ORDINI) stmt.executeUpdate("DELETE FROM ordini");
if(ORDINI_HISTORY) stmt.executeUpdate("DELETE FROM ordini_history");
if(PRODOTTI) stmt.executeUpdate("DELETE FROM prodotti");

我已经尝试过使用 TRUNCATE TABLE 语句,但结果是一样的。

【问题讨论】:

  • 你提交你的连接吗?还是自动提交设置为 true?
  • 不,我没有设置自动提交连接属性,但我尝试在代码末尾执行“con.commit()”......但表仍然不是空的。
  • 可能您正在查看的文件与代码使用的文件不同,或者可能所有三个标志都是错误的。尝试调试您的代码,并使用绝对文件路径而不是相对路径。
  • 似乎您的 if 条件为 false。 ;) 请放置完整的代码 sn-p。

标签: java hsqldb


【解决方案1】:

您的程序似乎在执行语句后立即退出。如果您将此行添加到末尾,它应该可以工作:

stmt.executeUpdate("SHUTDOWN");

【讨论】:

    【解决方案2】:

    使用executeUpdate("TRUNCATE SCHEMA public AND COMMIT") 在这里回答:How can I wipe data from my HSQLDB after every test?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-25
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      相关资源
      最近更新 更多