码迷,mamicode.com
首页 > 数据库 > 详细

hibernate之HQL,Criteria与SQL

时间:2019-04-11 19:32:24      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:query   技术   uil   result   getc   creat   main   开始   出现   

HQL是针对封装好的对象。

HQL :hibernate自己用的sql语句   -------HQL不能出现表中的任何内容 ---------不经常使用开发中

  基本查询:String hql = "from com.sikiedu.domain.User";

Query query = session.createQuery(hql);
List<User> list = query.list();//查询所有
User user = (User) query.uniqueResult();//查询唯一数据

  条件查询:

             基本条件查询:hql = "from com.sikiedu.domain.User where  id = 1";

             ?占位符查询: hql = "from com.sikiedu.domain.User where  id = ?0 ?1 ?2"

                                      Query query = session.createQuery(hql);

                                       设置参数

                                       query.setParameter(0,id);query.setString(0,id)

             命名占位符查询:hql = "from com.sikiedu.domain.User where id = :id"

                                          query.setParameter("id",value(传参id))

   分页查询:limit ?,?

                    hql = "from com.sikiedu.domain.User" 

                     Query query = session.createQuery(hql);

                      query.setFirstResultd(0);    //设置起始索引

                      query.setMaxResults(1);    //设置最大索引

                      List<User> list = query.list();

Criteria : 

   基本查询:CriteriaBuilder  criteriaBuilder = session.getCriteriaBuilder(); //得到CriteraBuilder 对象

                     CriteriaQuery<User> createQuery = criteriaBuilder.createQuery(User.class);//查询                           条件(首先知道查询什么类型数据)

                     Root<User> root= createQuery.from(User.class);//从User中查询

                      createQuery.select(root)//

                      List<User> resultList = session.cresteQuery(createQuery).getResultList();//执行查询

   条件查询:createQuery.select(root).where(root.get("id").in("1"))//条件查询,得到id==1的对象

   分页查询: 

   查询总记录数:CriteriaQuery<Long> criteria= criteriaBuilder.createQuery(Long.class);

                             Root<User> root= criteria.from(User.class);

                             criteria.select(criteriaBuilder.count(root));//criteriaBuilder.可以查询各种数

                             Long count =  session.createQuery(criteria).uniqueResult();

                       criteriaBuilder查询记录数:               技术图片

 

sql

   基本查询:

String sql = "";

NativeQuery query= session.createSQLQuery(sql);//创建sql查询表
query.addEntity(User.class);//自动封装成User对象数据
List<User> list = query.list();
System.out.println(list);

   条件查询: 给?赋值

                     query.setParameter(1,"3");//从1开始从hinernate5.x

   分页查询:

hibernate之HQL,Criteria与SQL

标签:query   技术   uil   result   getc   creat   main   开始   出现   

原文地址:https://www.cnblogs.com/ZTYCandy/p/10596560.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!