Hibernate 的三种查询方式:HQL、Criteria、Sql
来源:互联网 发布:rtu是什么数据 编辑:程序博客网 时间:2024/05/16 15:34
第一种方式:HQL(Hibernate Query Languge,Hibernate 查询语言)查询
是一种面向对象的查询语言,其中没有表和字段的概念,只有类、对象和属性的概念,HQL 是应用较为广泛的方式
语法:[select/update/delete……] from Entity [where……] [group by……] [having……] [order by……]
(1).没使用Spring框架的写法:
使用HQL需要四步
得到Session、编写HQL语句、创建Query对象(Query接口是HQL 查询接口。它提供了各种的查询功能)、执行查询,得到结果
sessionFactory = new Configuration().configure().buildSessionFactory(); session = sessionFactory.openSession(); String hql = “from Street”; Query query = session.createQuery(hql); List<Street> list = query.list();
(2).使用Spring框架的写法:
String queryString = "select form entity ....";List list=getHibernateTemplate().find(queryString);
第二种方式:Criteria 查询
Criteria 查询采用面向对象方式封装查询条件,又称为对象查询;
就是对SQL 语句进行封装,采用对象的方式来组合各种查询条件
由Hibernate 自动产生SQL 查询语句
(1).没使用Spring框架的写法;
Criteria由Hibernate Session进行创建
SessionFactory sessionFactory = new Configuration().configure() .buildSessionFactory(); Session session = sessionFactory.openSession(); Criteria criteria = session.createCriteria(User.class); List result = criteria.list(); Iterator it = result.iterator();
(2)使用Spring框架的写法:
import org.hibernate.criterion.DetachedCriteria; DetachedCriteria criteria=DetachedCriteria.forClass(ObjectEntity.class);criteria.add(Restrictions.eq("propertyName", propertyValue));List result=getHibernateTemplate().findByCriteria(criteria);
第三种方式:使用SQL语句查询(以下都是使用了Spring框架的写法)
1).这是把执行结果放到了一个类里:(这个类通常使用VO实体,VO实体一般就只用来接收查询结果)
List list = getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { StringBuffer hqlBuffer = new StringBuffer(""); hqlBuffer.append("select column_Name from ...");//里面是SQL语句 SQLQuery sqlQuery = session.createSQLQuery(hqlBuffer.toString()); sqlQuery.addScalar("propertyName",Hibernate.STRING);//该propertyName是 ObjectVO实体的一个属性 sqlQuery.setResultTransformer(Transformers.aliasToBean(ObjectVO.class)); List list = sqlQuery.list(); return list;//此处list集合中存放的是ObjectVO对象 } });
2).返回结果放到list中的:
final String queryString = "";//sql语句 List resultList=getHibernateTemplate().executeFind(new HibernateCallback() { public List doInHibernate(Session session) throws HibernateException, SQLException { SQLQuery sqlQuery = session.createSQLQuery(queryString); List list=sqlQuery.executeUpdate(); return list; } });
3).无返回结果:
final String queryString = "";//SQL语句 getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { SQLQuery sqlQuery = session.createSQLQuery(queryString); sqlQuery.executeUpdate(); return null; } });
0 0
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- hibernate之HQL、SQL、Criteria 三种查询简介
- Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
- 【SSH三大框架】Hibernate基础第四篇:Hibernate的两种查询方式:hql和Criteria
- Hibernate三种数据操作方式HQL-Criteria-Sql
- Hibernate中的三种查询HQL、Criteria、Sql学习(三)
- Hibernate中的三种查询HQL、Criteria、Sql学习(一)
- Hibernate中的三种查询HQL、Criteria、Sql学习(二)
- hibernate三种查询方式hql ,creatia,sql
- Hibernate中的查询:HQL、Criteria、原生SQl
- hibernate查询方式:HQL、SQL、Criteria方法、命名、动态分离查询、例子查询
- hibernate查询方式:HQL、SQL、Criteria方法、命名、动态分离查询、例子查询
- Mac 上编译 ffmpeg 方法
- 手把手教你使用Git
- scoped_ptr,scoped_array
- java并发库之Executors常用的创建ExecutorService的几个方法说明
- 可执行程序的装载
- Hibernate 的三种查询方式:HQL、Criteria、Sql
- 相对路径与绝对路径
- 使用github进行多人开发
- 干货--Redis 30分钟快速入门
- C# 对WinForm应用程序的App.config的使用及加密
- GeoHash
- 在Mac上配置adb命令
- PHP的特性包括 PHP:
- jfinal结合ajax