【MyBatis】插件篇——逆向工程(代码生成器)



【前言】

下面两篇博客,将分别介绍一下mybatis的两个插件:逆向工程和分页插件。

【正文】

一、简介

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

二、配置

第一步:导入jar包

mybatis-generator-core-1.3.2.jar

第二步:创建配置文件

    一般在项目的根目录下创建
<?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: 执行生成的逆向工程的版本
                    MyBatis3Simple: 生成基本的CRUD
                    MyBatis3: 生成带条件的CRUD
     -->
    <context id="DB2Tables" targetRuntime="MyBatis3">

        <!--数据库信息配置-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test_mybatis"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        <!-- 实体类的生成策略-->
        <javaModelGenerator targetPackage="com.mybatislearn.entity" targetProject=".src">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- SQL映射文件的生成策略 -->
        <sqlMapGenerator targetPackage="com.mybatislearn.mapper"  targetProject=".src">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        <!-- Mapper接口的生成策略 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.mybatislearn.mapper"  targetProject=".src">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!-- 逆向分析的表:表名称和对应表的实体类 -->
        <table tableName="tbl_employee" domainObjectName="Employee"></table>
    </context>
</generatorConfiguration>

第三步:编写代码

public class TestMyBatis {
          
   

    @Test
    public void testMBG() 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);
	}
}

结果: 成功生成

第四步:代码测试

QBC风格 使用方法来实现条件查询

//2 使用逆向工程代码实现条件查询
// 根据名称 和 邮箱
//2.1 创建EmployeeExample对象
EmployeeExample example = new EmployeeExample();
//2.2 创建封装条件对象
EmployeeExample.Criteria criteria = example.createCriteria();
//2.3 拼接条件
// last_name=lucy
//criteria.andLastNameEqualTo("lucy");
// last_name like 张%
criteria.andLastNameLike("张%");
// email = 44444
criteria.andEmailEqualTo("44444");

List<Employee> list = mapper.selectByExample(example);
System.out.println(list);

感谢阅读哇~

经验分享 程序员 微信小程序 职场和发展