无法在HSQLDB中删除表

时间:2011-06-02 20:15:25

标签: java jdbc hsqldb

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

 public static void main(String[]args){
        try {

            DBManager.executeUpdate("drop table mytable");

        } catch (SQLException ex) {
           ex.printStackTrace();
        }
    }
    public static Connection getConnection(){
        Connection c =null;

         try {
            c = DriverManager.getConnection("jdbc:hsqldb:file:e:\\xxx_db\\xxx", "SA", "");


        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return c;
    }
    public static int executeUpdate(String s) throws SQLException {
        Connection con = getConnection();
        try{
            return con.createStatement().executeUpdate(s);
        }
        finally{
            if(con!=null)try {
                con.close();
            } catch (SQLException ex) {
                Logger.getLogger(DBManager.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

事实证明我需要做一个明确的关机后退

 DBManager.executeUpdate("shutdown");

答案 1 :(得分:0)

尝试执行DDL后提交。