八、Mybatis 逆向工程
8.1、逆向工程简介
MyBatis Generator: 简称 MBG,是一个专门为 MyBatis 框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及 bean 类。支持基本的增删改查,以及 QBC 风格的条件查询。但是表连接、存储过程等这些复杂 sql 的定义需要我们手工编写
官方文档地址
http://www.mybatis.org/generator/

官方工程地址
https://github.com/mybatis/generator/releases
8.2、逆向工程的配置
导入逆向工程的 jar 包:mybatis-generator-core-1.3.2.jar
编写 MBG 的配置文件(重要几处配置),可参考官方手册
编写java代码运行
@Test public void testMBG() throws Exception { List warnings = new ArrayList(); boolean overwrite = true; File configFile = new File("mbg.xml"); ConfigurationParser cp = new ConfigurationParser(warnings); Configuration config = cp.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); }
8.3、逆向工程的使用
基本查询的测试
@Test public void testSelect() throws Exception { SqlSessionFactory ssf = getSqlSessionFactory(); SqlSession session = ssf.openSession(); try { EmployeeMapper mapper = session.getMapper(EmployeeMapper.class); List emps = mapper.selectAll(); for (Employee employee : emps) { System.out.println(employee); } } finally { session.close(); } }
带条件查询的测试
@Test public void testSelect() throws Exception { SqlSessionFactory ssf = getSqlSessionFactory(); SqlSession session = ssf.openSession(); try { EmployeeMapper mapper = session.getMapper(EmployeeMapper.class); //条件查询: 名字中带有'张' 并且 email中'j' 或者 did = 2 EmployeeExample example = new EmployeeExample(); Criteria criteria = example.createCriteria(); criteria.andLastNameLike("%张%"); criteria.andEmailLike("%j%"); //or Criteria criteriaOr = example.createCriteria(); criteriaOr.andDIdEqualTo(2); example.or(criteriaOr); List emps = mapper.selectByExample(example); for (Employee employee : emps) { System.out.println(employee); } } finally { session.close(); } }
#九、扩展-PageHelper 分页插件
9.1、PageHelper 分页插件简介
PageHelper 是 MyBatis 中非常方便的第三方分页插件,官方文档:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md
9.2、PageHelper 的使用步骤
导入相关包 pagehelper-x.x.x.jar 和 jsqlparser-0.9.5.jar
在 MyBatis 全局配置文件中配置分页插件
使用 PageHelper 提供的方法进行分页
可以使用更强大的 PageInfo 封装返回结果
9.3、Page 对象的使用
在查询之前通过 PageHelper.startPage(页码,条数)设置分页信息,该方法返回 Page 对象
@Test public void testPageHelper() throws Exception{ SqlSessionFactory ssf = getSqlSessionFactory(); SqlSession session = ssf.openSession(); try { EmployeeMapper mapper = session.getMapper(EmployeeMapper.class); //设置分页信息 Page