zoukankan      html  css  js  c++  java
  • hibernate之HQL,Criteria与SQL

    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

       分页查询:

  • 相关阅读:
    连接数据库代码
    C/C++ Basicsfunction pointer
    MSMQ&Com+ Service: How to create an Com+ Service in .NetFramework
    C/C++ Basics>about #define, const
    EndpointAddress
    MSMQ Basics Transactional Messages Processing
    Thread Basics(thread synchronization&Asynchronization) part two
    Thread Basics using Timer to trigger Event at a specified internals
    FAQ about AJAXpart II
    FAQ about AJAXpart I
  • 原文地址:https://www.cnblogs.com/ZTYCandy/p/10596560.html
Copyright © 2011-2022 走看看