Mybatis逆向工程

来源:互联网 发布:银联数据2017offer待遇 编辑:程序博客网 时间:2024/06/03 22:52

Mybatis逆向工程可以针对数据库中的单表自动生成Mybatis执行时所需要的代码。包括实体类PO、mapper.java接口、mapper.xml映射文件。

步骤:
在src下添加GeneratorSqlmap.java类

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;import java.io.File;import java.util.ArrayList;import java.util.List;/** * Created with IntelliJ IDEA. * User: YEN * Date: 2016/8/13 * Time: 21:02 */public class GeneratorSqlmap {    public static void main(String[] args) {        try {            GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();            generatorSqlmap.generator();        } catch (Exception e) {            e.printStackTrace();        }    }    public void generator() throws Exception{        List<String> warnings = new ArrayList<String>();        boolean overwrite = true;        //指定 逆向工程配置文件        File configFile = new File("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);    }}

在项目根目录下添加:逆向工程配置文件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>    <context id="testTables" targetRuntime="MyBatis3">        <commentGenerator>            <!-- 是否去除自动生成的注释 true:是 : false:否 -->            <property name="suppressAllComments" value="true" />        </commentGenerator>        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->        <jdbcConnection driverClass="com.mysql.jdbc.Driver"            connectionURL="jdbc:mysql://localhost:3306/DB_school" userId="root"            password="admin">        </jdbcConnection>        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和             NUMERIC 类型解析为java.math.BigDecimal -->        <javaTypeResolver>            <property name="forceBigDecimals" value="false" />        </javaTypeResolver>        <!-- targetProject:生成PO类的位置 -->        <javaModelGenerator targetPackage="pojo"            targetProject=".\src">            <!-- enableSubPackages:是否让schema作为包的后缀 -->            <property name="enableSubPackages" value="false" />            <!-- 从数据库返回的值被清理前后的空格 -->            <property name="trimStrings" value="true" />        </javaModelGenerator>        <!-- targetProject:mapper映射文件生成的位置 -->        <sqlMapGenerator targetPackage="mapper"             targetProject=".\src">            <!-- enableSubPackages:是否让schema作为包的后缀 -->            <property name="enableSubPackages" value="false" />        </sqlMapGenerator>        <!-- targetPackage:mapper接口生成的位置 -->        <javaClientGenerator type="XMLMAPPER"            targetPackage="mapper"             targetProject=".\src">            <!-- enableSubPackages:是否让schema作为包的后缀 -->            <property name="enableSubPackages" value="false" />        </javaClientGenerator>        <!-- 指定数据库表 -->        <table schema="" tableName="tb_user"></table>        <table schema="" tableName="tb_teacher"></table>    </context></generatorConfiguration>

运行GeneratorSqlmap.java的main函数就会在src下生成po、mapper包,并包含实体类PO、mapper.java接口、mapper.xml映射文件。

如果想要重新生成,应该删除再重新运行,因为文件不是覆盖而是追加。

0 0