MyBatis逆向工程
一、前言
MyBatis Generator简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类。支持基本的增删改查,以及QBC风格的条件查询。但是表连接、存储过程等这些复杂sql的定义需要我们手工编写
官方文档地址:http://www.mybatis.org/generator/
官方工程地址:https://github.com/mybatis/generator/releases
二、MBG使用
编写MBG的配置文件(重要几处配置):
①jdbcConnection配置数据库连接信息
②javaModelGenerator配置javaBean的生成策略
③sqlMapGenerator配置sql映射文件生成策略
④javaClientGenerator配置Mapper接口的生成策略
⑤table配置要逆向解析的数据表,tableName:表名,domainObjectName:对应的javaBean名
运行代码生成器生成代码
注意:
①Context标签
②targetRuntime=“MyBatis3“可以生成带条件的增删改查
③targetRuntime=“MyBatis3Simple“可以生成基本的增删改查
④如果再次生成,建议将之前生成的数据删除,避免xml向后追加内容出现的问题。
MBG配置文件
1 <generatorConfiguration>
2 <!--
3 targetRuntime="MyBatis3Simple":生成简单版的CRUD
4 MyBatis3:豪华版
5
6 -->
7 <context id="DB2Tables" targetRuntime="MyBatis3">
8 <!-- jdbcConnection:指定如何连接到目标数据库 -->
9 <jdbcConnection driverClass="com.mysql.jdbc.Driver"
10 connectionURL="jdbc:mysql://localhost:3306/mybatis?allowMultiQueries=true"
11 userId="root"
12 password="123456">
13 </jdbcConnection>
14
15 <!-- -->
16 <javaTypeResolver >
17 <property name="forceBigDecimals" value="false" />
18 </javaTypeResolver>
19
20 <!-- javaModelGenerator:指定javaBean的生成策略
21 targetPackage="test.model":目标包名
22 targetProject="MBGTestProjectsrc":目标工程
23 -->
24 <javaModelGenerator targetPackage="me.mybatis.bean"
25 targetProject=".src">
26 <property name="enableSubPackages" value="true" />
27 <property name="trimStrings" value="true" />
28 </javaModelGenerator>
29
30 <!-- sqlMapGenerator:sql映射生成策略: -->
31 <sqlMapGenerator targetPackage="me.mybatis.dao"
32 targetProject=".conf">
33 <property name="enableSubPackages" value="true" />
34 </sqlMapGenerator>
35
36 <!-- javaClientGenerator:指定mapper接口所在的位置 -->
37 <javaClientGenerator type="XMLMAPPER" targetPackage="me.mybatis.dao"
38 targetProject=".src">
39 <property name="enableSubPackages" value="true" />
40 </javaClientGenerator>
41
42 <!-- 指定要逆向分析哪些表:根据表要创建javaBean -->
43 <table tableName="tbl_dept" domainObjectName="Department"/>
44 <table tableName="tbl_employee" domainObjectName="Employee"/>
45 </context>
46 </generatorConfiguration>
生成器代码
1 publicstaticvoidmain(String[] args) throwsException {
2 List<String> warnings = newArrayList<String>();
3 booleanoverwrite = true;
4 File configFile = newFile("mbg.xml");
5 ConfigurationParser cp = newConfigurationParser(warnings);
6 Configuration config = cp.parseConfiguration(configFile);
7 DefaultShellCallback callback = newDefaultShellCallback(overwrite);
8 MyBatisGenerator myBatisGenerator = newMyBatisGenerator(config,
9 callback, warnings);
10 myBatisGenerator.generate(null);
11 }
测试查询:QBC风格的带条件查询
1 @Test
2 publicvoidtest01(){
3 SqlSession openSession = build.openSession();
4 DeptMapper mapper = openSession.getMapper(DeptMapper.class);
5 DeptExample example = newDeptExample();
6 //所有的条件都在example中封装
7 Criteria criteria = example.createCriteria();
8 //select id, deptName, locAdd from tbl_dept WHERE
9 //( deptName like ? and id > ? )
10 criteria.andDeptnameLike("%部%");
11 criteria.andIdGreaterThan(2);
12 List<Dept> list = mapper.selectByExample(example);
13 for(Dept dept : list) {
14 System.out.println(dept);
15 }
16 }
如果,您对我的这篇博文有什么疑问,欢迎评论区留言,大家互相讨论学习。
如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
如果,您对我的博文感兴趣,可以关注我的后续博客,我是【AlbertRui】。转载请注明出处和链接地址,欢迎转载,谢谢!