【问题标题】:unable to drop table in HSQLDB无法在 HSQLDB 中删除表
【发布时间】:2011-09-07 08:54:08
【问题描述】:

即使我可以创建表并毫无问题地读取它们,我也无法在 HSQLDB 中删除默认用户 SA(或任何用户)的表,请参阅下面的代码,有什么问题? 另一方面,如果我使用第三方 SQL 客户端(例如 squirrel),即使用户为空,我也可以毫无问题地登录和删除表。

公共静态无效主要(字符串[]参数){ 尝试 { DBManager.executeUpdate("drop table mytable"); } 捕捉(SQLException ex){ ex.printStackTrace(); } } 公共静态连接 getConnection(){ 连接 c =null; 尝试 { c = DriverManager.getConnection("jdbc:hsqldb:file:e:\\xxx_db\\xxx", "SA", ""); } 捕捉(SQLException ex){ ex.printStackTrace(); } 返回 c; } 公共静态 int executeUpdate(String s) 抛出 SQLException { 连接 con = getConnection(); 尝试{ 返回 con.createStatement().executeUpdate(s); } 最后{ 如果(con!= null)尝试{ con.close(); } 捕捉(SQLException ex){ Logger.getLogger(DBManager.class.getName()).log(Level.SEVERE, null, ex); } } }

【问题讨论】:

  • 您是否收到错误/异常? SQL 成功了但是表还在吗?
  • @Adam Batkin:我没有遇到任何异常,SQL 似乎成功了,但表仍然存在..
  • DUAL 表中有行吗?

标签: java jdbc hsqldb


【解决方案1】:

在执行 DDL 后尝试提交。

【讨论】:

    【解决方案2】:

    事实证明我需要在之后进行显式关闭

    DBManager.executeUpdate("关机");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多