实体类Student
public class Student {
private Integer sid;
private String sname;
private Integer sage;
private Character ssex;
private Integer cid;
public Student() {
super();
}
public Student(String sname, Integer sage, Character ssex, Integer cid) {
super();
this.sname = sname;
this.sage = sage;
this.ssex = ssex;
this.cid = cid;
}
public Student(Integer sid, String sname, Integer sage, Character ssex, Integer cid) {
super();
this.sid = sid;
this.sname = sname;
this.sage = sage;
this.ssex = ssex;
this.cid = cid;
}
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public Integer getSage() {
return sage;
}
public void setSage(Integer sage) {
this.sage = sage;
}
public Character getSsex() {
return ssex;
}
public void setSsex(Character ssex) {
this.ssex = ssex;
}
public Integer getCid() {
return cid;
}
public void setCid(Integer cid) {
this.cid = cid;
}
@Override
public String toString() {
return "Student [sid=" + sid + ", sname=" + sname + ", sage=" + sage + ", ssex=" + ssex + ", cid=" + cid + "]";
}
}
实体分页类pageBean
public class PageBean<T> {
private List<T> beanList;
private int pageSize;
private int pageIndex;
private int totalRecord;
private int totalPage;
private int pageBegin;
private int pageEnd;
private String url;
public PageBean() {
super();
}
public List<T> getBeanList() {
return beanList;
}
public void setBeanList(List<T> beanList) {
this.beanList = beanList;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getTotalRecord() {
return totalRecord;
}
public void setTotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
}
public int getTotalPage() {
return (totalRecord%pageSize==0)?totalRecord/pageSize:totalRecord/pageSize+1;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getPageBegin() {
return pageBegin;
}
public void setPageBegin(int pageBegin) {
this.pageBegin = pageBegin;
}
public int getPageEnd() {
return pageEnd;
}
public void setPageEnd(int pageEnd) {
this.pageEnd = pageEnd;
}
public void setPageBeginAndPageEnd() {
if(getTotalPage()<10) {
pageBegin=1;
pageEnd=getTotalPage();
}else {
pageBegin=pageIndex-5;
pageEnd=pageIndex+4;
if(pageBegin<1) {
pageBegin=1;
pageEnd=10;
}
if(pageEnd>getTotalPage()) {
pageBegin=getTotalPage()-9;
pageEnd=getTotalPage();
}
}
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public String toString() {
return "PageBean [beanList=" + beanList + ", pageSize=" + pageSize + ", pageIndex=" + pageIndex
+ ", totalRecord=" + totalRecord + ", totalPage=" + getTotalPage() + ", pageBegin=" + pageBegin
+ ", pageEnd=" + pageEnd + "]";
}
}
DAO接口类StudentDAO.java
public interface StudentDAO {
int selectAllStudentNumber(@Param("student")Student student);
List<Student> selsectAllStudent(@Param("page") int page,@Param("pageSize") int pageSize,
@Param("student")Student student);
}
接口映射文件xml:StudentDAO.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="com.woniu.dao.StudentDAO">
<!-- 查询所有学生总数 -->
<select id="selectAllStudentNumber" resultType="int">
select count(*) from student
<include refid="selectStudent"></include>
</select>
<!-- 查询当前页需要展示的学生 -->
<select id="selsectAllStudent" resultType="Student">
select * from student
<include refid="selectStudent"></include>
limit #{page},#{pageSize}
</select>
<!-- 查询条件 -->
<sql id="selectStudent">
<where>
<!-- 这里条件查询只用了学生对象中的姓名 -->
<if test="student.sname!=null and student.sname!=''">
and sname like '%' #{student.sname} '%'
</if>
</where>
</sql>
</mapper>
mybatis主配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties" />
<!-- 别名设置 -->
<typeAliases>
<package name="com.woniu.entity"/>
</typeAliases>
<!-- 运行的基本环境配置 -->
<environments default="dev">
<environment id="dev">
<!-- 事物管理器,默认jdbc的事物管理 -->
<transactionManager type="JDBC" />
<!-- 数据源type配置连接池,默认使用内置的连接池 -->
<dataSource type="POOLED">
<!-- jdbc四大参数 -->
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 包扫描 -->
<package name="com.woniu.dao"/>
</mappers>
</configuration>
测试类
public class StudentDAOImpTest {
SqlSession sqlSession;
StudentDAO studentDaoImp;
@Before
public void setUp() {
sqlSession=MyBatisUtil.getSqlSession();
studentDaoImp = sqlSession.getMapper(StudentDAO.class);
}
@After
public void tearDown() {
if(sqlSession!=null) {
sqlSession.close();
}
}
@Test
public void pagingStudent(){
PageBean pb = new PageBean();
pb.setPageSize(3);
pb.setPageIndex(1);
int page = (pb.getPageIndex()-1)*pb.getPageSize();
Student student = new Student();
student.setSname("小明");
pb.setTotalRecord(studentDaoImp.selectAllStudentNumber(student));
pb.setBeanList(studentDaoImp.selsectAllStudent(page, pb.getPageSize(), student));
pb.setPageBeginAndPageEnd();
System.out.println(pb);
}
}