Mybatis 分页查询数据(借用map来封装参数)

来源:互联网 发布:mac找不到图片文件夹 编辑:程序博客网 时间:2024/06/06 03:26

Mybatis 分页查询数据(借用map来封装参数) 


1、IEmpDAO.java 提供分页查询的方法

/** * 分页查询员工 *  * @param cp *            当前页 * @param ps *            查询几条 * @return */public List<Emp> findEmpSplit(int cp, int ps);

2、EmpDAOImpl.java 接口方法的实现类

public List<Emp> findEmpSplit(int cp, int ps) {try {SqlSession sqlSession = MybatisSqlSessionFactory.getMySqlSession();Map<String, Integer> map = new HashMap<String, Integer>();map.put("start", (cp - 1) * ps);// 设置分页查询的起始值map.put("ps", ps);// 设置每一页查询条数return sqlSession.selectList("cn.sz.hcq.pojo.Emp.findEmpSplit", map);} catch (Exception e) {e.printStackTrace();} finally {MybatisSqlSessionFactory.closeSqlSession();}return null;}


MybatisSqlSessionFactory 为自己封装的一个获取sqlSession的一个工具类,可参看本人mybatis的其它文章。

3、Emp.java实体类

package cn.sz.hcq.pojo;import java.io.Serializable;import java.util.Date;public class Emp implements Serializable {private Integer empno;private String ename;private String job;private Integer mgr;private Date hiredate;private Double sal;private Double 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 Double getSal() {return sal;}public void setSal(Double sal) {this.sal = sal;}public Double getComm() {return comm;}public void setComm(Double comm) {this.comm = comm;}public Integer getDeptno() {return deptno;}public void setDeptno(Integer deptno) {this.deptno = deptno;}}


4、Emp.xml 实体映射文件

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.sz.hcq.pojo.Emp"><!-- 分页查询员工 --><select id="findEmpSplit" parameterType="java.util.Map"resultType="cn.sz.hcq.pojo.Emp">select empno,ename,job,mgr,hiredate,sal,comm,deptno fromemp limit #{start},#{ps}</select></mapper>

5、测试类Test.java

public class Test {public static void main(String[] args) {IEmpDAO empdao = new EmpDAOImpl();// 分页查询int cp = 1;//当前页int ps = 2;//每页显示的数目List<Emp> emplist = empdao.findEmpSplit(cp, ps);for (int i = 0; i < emplist.size(); i++) {Emp emp = emplist.get(i);System.out.println(emp.getEmpno() + "," + emp.getEname());}}}

补充知识点:

sql语句中传递的多个参数不能使用现有的所有的实体类来封装
1.可以自己创建一个新的实体类来封装参数
2.使用map来封装参数



阅读全文
0 0