zoukankan      html  css  js  c++  java
  • hibernate的分页查询

    setFirstResult(int firstResult) 设置返回结果从第几条开始 ---- 索引从0开始

    setMaxResults(int maxResults) 设置本次返回结果记录条数

    hibernateHql.cfg.xml配置文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
    <session-factory>
    <!-- 指定数据库所用到的驱动 -->
    <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <!-- 指定数据库链接的url,hibernate链接的数据库名 -->
    <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
    <!-- 指定连接数据库的用户名 -->
    <property name="connection.username">scott</property>
    <!-- 指定连接数据库的用户口令 -->
    <property name="connection.password">123156</property>
    <!-- Enable Hibernate's automatic session context management -->
    <property name="current_session_context_class">thread</property>

    <!--格式化sql -->
    <property name="format_sql ">true</property>
    <!-- 打印sql 控制台-->
    <property name="show_sql">true</property>
    <!-- 指定数据库方言 -->
    <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
    <!-- 根据需要自动创建数据库表 -->
    <property name="hbm2ddl.auto">update</property>
    <!--关联小配置文件-->
    <mapping resource="cn/day03hql/dynamic/entity/Emp.hbm.xml"></mapping>
    </session-factory>
    </hibernate-configuration>


    实体类
    public class Emp {
    private Integer empno;
    private String ename;
    private String job;
    private Integer mgr;
    private Date hiredate;
    private Integer sal;
    private Integer comm;
    private Integer deptno;

    public Integer getEmpno() {
    return empno;
    }
    public void setEmpno(Integer empno) {
    this.empno = empno;
    }

    public String getEname() {return ename;}
    public void setEname(String ename) {
    this.ename = ename;
    }

    public String getJob() {
    return job;
    }
    public void setJob(String job) {
    this.job = job;
    }

    public Integer getMgr() {
    return mgr;
    }
    public void setMgr(Integer mgr) {
    this.mgr = mgr;
    }

    public Date getHiredate() {
    return hiredate;
    }
    public void setHiredate(Date hiredate) {
    this.hiredate = hiredate;
    }

    public Integer getSal() {
    return sal;
    }
    public void setSal(Integer sal) {
    this.sal = sal;
    }

    public Integer getComm() {
    return comm;
    }
    public void setComm(Integer comm) {
    this.comm = comm;
    }

    public Integer getDeptno() {
    return deptno;
    }
    public void setDeptno(Integer deptno) {
    this.deptno = deptno;
    }
    }

    小配置文件
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <!-- 映射文件开始 -->
    <hibernate-mapping package="cn.day03hql.dynamic.entity">
    <!--表名称-->
    <class name="Emp" table="EMP" schema="scott">
    <!--列名-->
    <id name="empno" column="EMPNO">
    <!--主键生成的策略 native:自动生成主键字段-->
    <generator class="native"></generator>
    </id>
    <property name="ename" column="ENAME"></property>
    <property name="job" column="JOB"></property>
    <property name="mgr" column="MGR"></property>
    <property name="hiredate" column="HIREDATE"></property>
    <property name="sal" column="SAL"></property>
    <property name="comm" column="COMM"></property>
    <property name="deptno" column="DEPTNO"></property>
    </class>
    </hibernate-mapping>

    测试类
    //分页查询
    @Test
    public void test02(){
    //读取大配置文件
    Configuration cfg=new Configuration().configure("hibernateHql.cfg.xml");
    //session工厂
    SessionFactory factory=cfg.buildSessionFactory();
    //session对象
    Session session = factory.openSession();
    String hql="from Emp order by empno";
    Query query = session.createQuery(hql);
    int pageIndex=2;
    int pageSize=3;
    query.setFirstResult((pageIndex-1)*pageSize);
    query.setMaxResults(pageSize);
    /* query.setFirstResult(0);
    query.setMaxResults(5);*/
    List<Emp> list = query.list();
    for (Emp item:list){
    System.out.println(item.getEname());
    }
    }




  • 相关阅读:
    【Revit API】改变填充区域的填充样式
    【Revit API】创建共享参数
    【Revit API】墙体分割
    【Revit API】FamilyInstance、FamilySymbol、Family的寻找关系
    【Revit API】创建相机视角
    【Revit API】获取链接模型中构件
    【Revit API】梁的净高分析
    【Revit API】脱离中心文件
    【Revit API】创建工作集并将element加入工作集中
    常用的XML解析函数
  • 原文地址:https://www.cnblogs.com/sujulin/p/8117716.html
Copyright © 2011-2022 走看看