1、PageHelper插件进行分页
(1)PageHelper是MyBatis中非常方便的第三方分页插件。如果直接用mysql的limit关键字来分页,不够灵活,还会改代码。pagehelper可以低侵入式完成分页(不改代码,只新增代码)
(2)官方文档:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md
(3)我们可以对照官方文档的说明,快速的使用插件
(4)使用方法
step1 用Maven 导入jar包,具体上官方文档
step2 EmployeeMapper.java中
package com.atguigu.mybatis.dao;
public interface EmployeeMapper {
public List<Employee> getEmps();
}
进入映射文件中,写好查询sql语句
<!--public List<Employee> getEmps(); -->
<select id="getEmps" resultType="com.atguigu.mybatis.bean.Employee">
select id,last_name lastName,email,gender from tbl_employee
</select>
全局配置文件mybatis-config.xml中,配置分页插件
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
进入测试文件测试,分页效果。
package com.atguigu.mybatis.test;
public class MyBatisTest {
@Test
public void test01() throws IOException {
// 1、获取sqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
// 2、获取sqlSession对象
SqlSession openSession = sqlSessionFactory.openSession();
try {
EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
List<Employee> emps = mapper.getEmps();
//传入要连续显示多少页
PageInfo<Employee> info = new PageInfo<>(emps, 5);
for (Employee employee : emps) {
System.out.println(employee);
}
System.out.println("当前页码:"+info.getPageNum());
System.out.println("总记录数:"+info.getTotal());
System.out.println("每页的记录数:"+info.getPageSize());
System.out.println("总页码:"+info.getPages());
System.out.println("是否第一页:"+info.isIsFirstPage());
System.out.println("连续显示的页码:");
int[] nums = info.getNavigatepageNums();
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
} finally {
openSession.close();
}
}
}
2、批量操作
2.1 常规批量操作
step1 接口中,写好添加方法
package com.atguigu.mybatis.dao;
public interface EmployeeMapper {
public Long addEmp(Employee employee);
}
step2 映射文件中,写好sql语句
<!--public Long addEmp(Employee employee); -->
<insert id="addEmp" useGeneratedKeys="true" k