逆向工程
MyBatis Generator:代码生成器,可以根据指定的表快速生成对应的映射文件,接口,以及Bean类支持基本的增删改查,以及QBC风格的条件查询
但是一些复杂的表连接还是需要我们自己来去编写。
1.下载:https://github.com/mybatis/generator/releases
2.把相关jar导入到工程当中:mybatis-generator-core-1.3.7.jar
3.创建generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!--
targetRuntime:设置自动生成的版本
MyBatis3:
MyBatis3Simple:简单增删改查
-->
<context id="DB2Tables" targetRuntime="MyBatis3">
<!--
不要生成日期和备注
-->
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8"
userId="root"
password="1234">
</jdbcConnection>
<!--
配置domain生成策略
targetProject:把自动生成的domian放在哪个工程里面
targetPackage:哪个包下
-->
<javaModelGenerator targetPackage="com.itlike.domain" targetProject=".\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--
配置mapper.xml的生成策略
targetPackage:把自动生成的mapper放在哪个工程里面
targetProject:哪个包下
-->
<sqlMapGenerator targetPackage="com.itlike.mapper" targetProject=".\src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!--
mapper接口生成策略
-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.itlike.mapper" targetProject=".\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<table tableName="customer" domainObjectName="Customer" ></table>
<table tableName="teacher" domainObjectName="Teacher" ></table>
<table tableName="student" domainObjectName="Student" ></table>
</context>
</generatorConfiguration>
4.编写生成代码
@Test
public void test() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
File configFile = new File("./src/generatorConfig.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);
}
分页插件
插件是MyBatis提供的一个非常强大的机制,
MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。
通过插件来修改MyBatis的一些核心行为。
1.下载分页插件
https://github.com/pagehelper/Mybatis-PageHelper/blob/master/README_zh.md
jsqlparser-0.9.5.jar
pagehelper-5.0.0.jar
2.配置分页插件
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
3.使用分页插件
在查询之前设置分页
Page<Object> page = PageHelper.startPage(1, 5);
查询数据之后添加
PageInfo<Customer> pageInfo = new PageInfo<>(customers, 5);
属性介绍
System.out.println("当前页:"+pageInfo.getPageNum());
System.out.println("每页显示记录数:"+pageInfo.getPageSize());
System.out.println("总页数:"+pageInfo.getPages());
System.out.println("总记录数:"+pageInfo.getTotal());
System.out.println("是否有上一页:"+pageInfo.isHasPreviousPage());
System.out.println("是否有下一页:"+pageInfo.isHasNextPage());
System.out.println("导航页面:"+ Arrays.toString(pageInfo.getNavigatepageNums()));