如何使用Hibernate& amp;清除或删除数据库Java应用程序中的MySQL

时间:2016-08-30 01:43:45

标签: mysql database hibernate mariadb

是否有 mysql查询(使用MariaDB 10.x.x)或 Hibernate HQL ,其中单个数据库中的所有表都被删除了?现在我正在尝试使用下面的代码,但它对数据库没有任何作用。由于我使用的是Hibernate 5.x.x,因此createSQLQuery被折旧;因此我使用createNativeQuery 代替

tx = s.beginTransaction();
            Session s = getSessionFactory().openSession();
        Transaction tx = null;

        try {
            tx = s.beginTransaction();
            s.createNativeQuery("SET FOREIGN_KEY_CHECKS = 0");
            s.createNativeQuery("DROP DATABASE restaurantapp");
            tx.commit();
        } catch (HibernateException e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            s.close();
        }

1 个答案:

答案 0 :(得分:0)

SQL命令没问题,但我不知道在每次本机查询后我需要添加.executeUpdate();

解决方案代码:

Session s = getSessionFactory().openSession();
        Transaction tx = null;

        try {
            tx = s.beginTransaction();
            s.createNativeQuery("SET FOREIGN_KEY_CHECKS = 0").executeUpdate();
            s.createNativeQuery("DROP DATABASE restaurantapp").executeUpdate();
            tx.commit();
        } catch (HibernateException e) {
            if (tx != null) {
                tx.rollback();
            }
            e.printStackTrace();
        } finally {
            s.close();
        }