@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 .