-
Mapper.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.jmh.mybatis.mapper.BookMapper" >
<resultMap id="row" type="com.jmh.mybatis.model.Book" >
<id column="book_id" property="bookId" javaType="java.lang.Integer" />
<result column="book_name" property="bookName" javaType="java.lang.String" />
<result column="price" property="price" javaType="java.lang.Float" />
</resultMap>
<select id="listBook" resultMap="row">
select
<include refid="Base_Column_List" />
from tb_book
where 1=1
/*判断名称不为空*/
<if test="bookName != null ">
and book_name like CONCAT('%',#{bookName},'%')
</if>
/*判断价格不为空*/
<if test="price != null ">
and price=#{price}
</if>
/*判断编号不为空*/
<if test="bookId != null ">
and book_id=#{bookId}
</if>
</select>
</mapper>
- service层
List<Book> listBook(BookVo book);
- 实现类
//创建对象
private BookMapper bookMapper;
/**
* 给bookMapper set,get方法
* @return
*/
public BookMapper getBookMapper() {
return bookMapper;
}
public void setBookMapper(BookMapper bookMapper) {
this.bookMapper = bookMapper;
}
@Override
public List<Book> listBook(BookVo book) {
return bookMapper.listBook(book);
}
- 添加分页依赖
<!-- ********************** 分页依赖 ********************** -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
- 在Mybatis.xml添加分页插件
<plugins>
<!-- 配置分页插件PageHelper, 4.0.0以后的版本支持自动识别使用的数据库 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
</plugin>
</plugins>
- 使用junit进行测试
package com.jmh.mybatis.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.jmh.mybatis.mapper.BookMapper;
import com.jmh.mybatis.model.BookVo;
import com.jmh.mybatis.service.IBookService;
import com.jmh.mybatis.utils.PageBean;
import org.apache.ibatis.session.SqlSession;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import static org.junit.Assert.*;
public class BookServiceImplTest {
//创建对象
private IBookService iBookService;
private SqlSession sqlsession;
private BookVo bookVo;
@Before
public void setUp() throws Exception {
//获取session
sqlsession = MybatisSqlSessionFactory.getSqlsession();
BookMapper mapper = sqlsession.getMapper(BookMapper.class);
BookServiceImpl bookServiceimpl=new BookServiceImpl();
bookServiceimpl.setBookMapper(mapper);
//实例化
iBookService=bookServiceimpl;
bookVo=new BookVo();
}
@After
public void tearDown(){
//提交
sqlsession.commit();
//关闭
MybatisSqlSessionFactory.closeSqlsession();
}
@Test
public void listBook() {
//模糊查询
bookVo.setBookName("波");
PageHelper.startPage(1,10);//第一个参数:当前页码,第二个参数:页大小
PageBean pageBean =new PageBean();
List<Book> books = iBookService.listBook(bookVo);
for (Book book : books) {
System.out.println(book);
}
PageInfo pageInfo = new PageInfo(books);
System.out.println("页码:" + pageInfo.getPageNum());
System.out.println("页大小:" + pageInfo.getPageSize());
System.out.println("总记录:" + pageInfo.getTotal());
}
}
测试结果如下