hibernate session.createSQLQuery(sql); 通过命令删除

@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
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/zuochanzi/p/9864187.html

时间: 2024-11-10 19:45:11

hibernate session.createSQLQuery(sql); 通过命令删除的相关文章

关于hibernate的session.createSQLQuery(sql)直接调用底层SQL后,返回结果集的问题

数据库中有如下信息name,sex张三.男李四.女通过Hibernate的  createSQLQuery 可以直接调用底层SQL语句如下:List list = (List)getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException,SQLException { Query query = sessio

herbnate session.createSQLQuery(sql) 和 session.createQuery(sql)使用

public class DistributeDao implements Serializable{ private SessionFactory sessionFactory; public Session getSession() { return sessionFactory.getCurrentSession(); } public SessionFactory getSessionFactory() { return sessionFactory; } public void set

使用Hibernate+MySql+native SQL的BUG,以及解决办法

本来是mssql+hibernate+native SQL 应用的很和谐 但是到了把mssql换成mysql,就出了错(同样的数据结构和数据). 查询方法是: [java] view plaincopy String sql = "select id XXX_ID  from t_tab"; List<Map> list = session.createSQLQuery(sql) .setResultTransformer(Transformers.ALIAS_TO_ENT

Hibernate 的原生 SQL 查询

Hibernate除了支持HQL查询外,还支持原生SQL查询.         对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.该接口是Query接口的子接口.         执行SQL查询步骤如下:         1.获取Hibernate Session对象         2.编写SQL语句         3.通过Session的createSQLQuery方法创建查询对象         4.调用SQ

Hibernate使用原生SQL(转载)

本文转载,出处如下:http://bhdweb.iteye.com/blog/801084 HQL尽管容易使用,但是在一些复杂的数据操作上功能有限.特别是在实现复杂的报表统计与计算,以及多表连接查询上往往无能为力,这时可以使用SQL(Native SQL)实现HQL无法完成的任务. 1.使用SQL查询 使用SQL查询可以通过两种方式来实现: (1).利用Hibernate提供的SQLQuery对象执行.即可以通过Session对象的createSQLQuery()方法获取.如: String s

hibernate使用原生SQL查询返回结果集的处理

今天没事的时候,看到公司框架里有一个用原生SQL写的函数,说实在以前自己也干过这事,但好久都没有用,都忘得差不多了,现在基本都是用的hql语句来查询结果.hibernate中使用createSQLQuery拉来来实现SQL语句的查询,具体用法:session.createSQLQuery(sql),对于用SQL返回的结果集是一个什么样的结果集都毫无记忆.自己查了下,才知道,原来是返回一个Object类型数组的list集合,而其中Object类型的数组里的值则与sql语句中的查询项相对应,如果是s

Hibernate对原生sql处理及结果集和VO的映射

昨天解决一个看似很简单的需求, 我有一个类似下面的table(info_table),是收集产品使用的机型信息: id type model 1 nokia xxx1 2 nokia xxx2 3 Motorola yyyy1 4 Motorola yyyy2 5 Motorola yyyy3 要实现一个前台展示的页面: type countType nokia 2 Motorola 3 就这么简单的功能.相信稍微熟悉sql的人,马上就可以写出此实现.很惭愧的说,我的心里感觉很简单,由于很久没怎

Hibernate的session.createSQLQuery的几种查询方式

当我们用HQL进行子查询的时候,如select * from Tree where pid in (select id from Tree,此时HIBERANTE就会报错,说什么*号错误之类的.但如果将*改为Tree类里的所有子段时就不会有问题了.就会像平时一样第一行数据返 回一个Object[],然后你再根据Tree类里字段对Object[]数组里的值进行转换.这样一来比较麻烦.今天发现如果我SQL来查有一个方法可 以返回一个对象的. Configuration config = new Co

hibernate里createSQLQuery

转自: http://blog.csdn.net/jacman/article/details/8591152 一.addEntity()和setResultTransformer()方法 1. 使用SQLQuery 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.最简单的情况下,我们可以采用以下形式: List cats = sess.createSQLQuery( " select * from cats &q