IT虾米网

Mybatis generator 自动生成代码详解

developer 2018年06月22日 编程语言 489 0

开发项目的时候,表很多,是不可能一点点的自己去写xml ,dao文件的,这里就需要用到代码的自动生成工具了。

第一步:导入jar包,当然,这之前,基本环境,像mybatis,数据库之类的都得搭建好。

      <dependency> 
             <groupId>org.mybatis.generator</groupId> 
             <artifactId>mybatis-generator-core</artifactId> 
             <version>1.3.2</version> 
      </dependency>

第二步:创建启动的 xml配置文件 mybatis-generator-config.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="***" userId="***" 
             password="***"/> 
         
                         
        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和  
            NUMERIC 类型解析为java.math.BigDecimal --> 
        <javaTypeResolver> 
            <property name="forceBigDecimals" value="false" /> 
        </javaTypeResolver> 
 
        <!-- targetProject:生成PO类的位置 --> 
        <javaModelGenerator targetPackage="com.sun.mybatis.dto" 
            targetProject=".\src\test\java"> 
            <!-- enableSubPackages:是否让schema作为包的后缀 --> 
            <property name="enableSubPackages" value="false" /> 
            <!-- 从数据库返回的值被清理前后的空格 --> 
            <property name="trimStrings" value="true" /> 
        </javaModelGenerator> 
        <!-- targetProject:mapper映射文件生成的位置 --> 
        <sqlMapGenerator targetPackage="com.sun.mybatis.mapper"  
            targetProject=".\src\test\java"> 
            <!-- enableSubPackages:是否让schema作为包的后缀 --> 
            <property name="enableSubPackages" value="false" /> 
        </sqlMapGenerator> 
        <!-- targetPackage:mapper接口生成的位置 --> 
        <javaClientGenerator type="XMLMAPPER" 
            targetPackage="com.sun.mybatis.dao"  
            targetProject=".\src\test\java"> 
            <!-- enableSubPackages:是否让schema作为包的后缀 --> 
            <property name="enableSubPackages" value="false" /> 
        </javaClientGenerator> 
        <!-- 指定数据库表 --> 
        <table schema="" tableName="b_staff" ></table> 
        <table schema="" tableName="b_contents" ></table> 
 
 <!--        <table tableName="CTAS_FEE_BASE" domainObjectName="FeeBase" 
               enableCountByExample="false" enableUpdateByExample="false" 
               enableDeleteByExample="false" enableSelectByExample="false" 
               selectByExampleQueryId="false"> --> 
        <!-- 有些表的字段需要指定java类型 
         <table schema="" tableName=""> 
            <columnOverride column="" javaType="" /> 
        </table> --> 
    </context> 
</generatorConfiguration>

第三步,写个主方法,去运行就行了

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; 
 
/** 
 * @author  szy  
 * @version 创建时间:2018-6-4 下午9:26:54 
 *  
 */ 
public class MybatisGenerator { 
 
    /** 
     * @param args 
     */ 
    public static void main(String[] args) { 
        // TODO Auto-generated method stub 
        try { 
            MybatisGenerator generatorSqlmap = new MybatisGenerator(); 
            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("E:/java-workspace/myblog/src/main/resources/mybatis-generator-config.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); 
 
    } 
}

完成,刷新下就能看到代码都出来了。

 

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

Redis学习之(一)详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。