- 1.导包:
mybatis-generator-core-1.3.2.jar
资源链接:
链接:https://pan.baidu.com/s/1iHiVOtWl8eQz8T8ABfXnyw
提取码:wtyp
2.根据QuickStart官方文档写配置:


- 修改一下:
<?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>
<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 指导链接到哪个数据库 -->
<jdbcConnection
driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatisedu"
userId="root"
password="1234">
</jdbcConnection>
<javaTypeResolver >
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!--
帮我们生成POJO
targetPackage:生成的POJO放在哪个包?
targetProject: 放在哪个工程下
-->
<javaModelGenerator targetPackage="com.EzerbelCN.bean"
targetProject=".\src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- sqlMapGenerator:sql映射文件生成器 ,指定*dao.xml生成地方-->
<sqlMapGenerator targetPackage="com.EzerbelCN.mapper" targetProject=".\conf">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- dao接口生成的地方 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.EzerbelCN.mapper"
targetProject=".\src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- table 指定要逆向生成哪张表
tableName="t_teachers" 表名
domainObjectName="Teacher" 这个表对应的对象名
-->
<table tableName="t_teachers" domainObjectName="Teacher"></table>
<table tableName="t_students" domainObjectName="Student"></table>
<table tableName="t_schools" domainObjectName="School"></table>
</context>
</generatorConfiguration>
注意更正mybatis-config.xml的mapper扫描范围:

3.生成工程文件:
package com.EzerbelCN.test;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
public class GenerateMyBaisFiles {
public static void main(String[] args) throws Exception{
List<String> warnings = new ArrayList<String>();
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);
System.out.println("生成OK");
}
}
5.开始测试:
package com.EzerbelCN.test;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import com.EzerbelCN.bean.School;
import com.EzerbelCN.bean.SchoolExample;
import com.EzerbelCN.bean.SchoolExample.Criteria;
import com.EzerbelCN.mapper.SchoolMapper;
import com.EzerbelCN.mapper.StudentMapper;
import com.EzerbelCN.mapper.TeacherMapper;
public class MBGTest {
TeacherMapper teacherMapper;
StudentMapper studentMapper;
SchoolMapper schoolMapper;
@Before
public void initMapper() throws Exception{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = factory.openSession();
teacherMapper = sqlSession.getMapper(TeacherMapper.class);
studentMapper = sqlSession.getMapper(StudentMapper.class);
schoolMapper = sqlSession.getMapper(SchoolMapper.class);
}
@Test
public void testSchoolExample()
{
SchoolExample example = new SchoolExample();
example.setOrderByClause("id DESC");
Criteria criteria = example.createCriteria();
criteria.andIdIn(Arrays.asList(1,2,3));
List<School> schools = schoolMapper.selectByExample(example);
schools.forEach(System.out::println);
}
}
6.测试结果:

本文介绍如何使用MyBatis Generator进行自动代码生成,包括配置文件的编写、生成POJO、DAO接口及映射文件的过程,并提供了一个简单的测试示例。
6230

被折叠的 条评论
为什么被折叠?



