@Override public boolean deleteBySql(String sql) { Session session = getSession(); @SuppressWarnings("unchecked") // Transaction tx = session.beginTransaction(); Query query = session.createSQLQuery(sql); query.executeUpdate(); // tx.commit(); // session.close(); return true; }
網上很多先通過查詢id 再刪除
和刪除對象的方式.
麻煩,我就直接用命令刪除吧
session.createSQLQuery(sql); 長的差不多的還有一個命令 session.createQuery
兩者的區別: Query createQuery ( String queryString) 創建一個查詢字符串中給定的HQL 查詢新的實例。 參數:HQL查詢 返回值:Query查詢 拋出異常:HibernateException SQLQuery createSQLQuery ( String queryString) 創建一個新的查詢字符串給定的SQL實例SQLQuery的。 參數:SQL查詢 返回值:SQLQuery 拋出異常:HibernateException 簡單來說,createQuery使用hql語句進行查詢,以Hibernate生成的Bean為對象,並將對象裝入List中返回。 createSQLQuery使用sql語句進行查詢,是以對象數組形式返回。 --------------------- 作者:wangshuang1631 來源:CSDN 原文:https://blog.csdn.net/wangshuang1631/article/details/52526594 版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
報錯1:
Unknown column '張三' in 'where clause'
這個問題是你的SQL語句問題,字符串類型的數據需要加上單引號
string sql = "select * from test where name = '"+username+"';
最終結果如果刪除如果數據庫存在輸出的值則返回刪除了多少條數據.
如果數據庫不存在要刪除的值返回則為0 .