mybatis逆向工程

什么是逆向工程

mybatis需要程序员自己编写sql代码 官方提供了逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml,pojo…)

在企业的实际开发中常用的逆向工程方式:

由数据库的表生成java代码(因为大多数情况下在设计阶段数据库已经设计好了)

 

逆向工程实现:

引入所需要的包:

mybatis包:mybatis-3.2.7.jar 

mybatis逆向工程包:mybatis-generator-core-1.3.2.jar

mysql驱动包:mysql-connector-java-5.1.6-bin.jar

日志包:commons-logging-1.1.1.jar

日志包:log4j-1.2.17.jar

日志包:log4j-api-2.0-rc1.jar

下载mybatis-generator-core-1.3.2.jar 逆向工程所需要的包

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>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!-- 连接数据库 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/mybatis" userId="root" password="">
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>
        <!-- targetPackage:生成po类的包名 targetProject:生成po类的位置 -->
        <javaModelGenerator targetPackage="com.mybatis.po"
            targetProject="./src">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        
        <!-- targetPackage:mapper接口文件生成的包名 targetProject:mapper接口文件生成的项目位置-->
        <sqlMapGenerator targetPackage="com.mybatis.dao"
            targetProject="./src">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        
        <!-- targetPackage:mapper映射文件生成的包名  targetProject:mapper映射文件生成的项目位置-->
        <javaClientGenerator type="XMLMAPPER"
            targetPackage="com.mybatis.dao" targetProject="./src">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <!-- 配置需要生成的表 -->
        <table tableName="user" domainObjectName="user"></table>
        <table tableName="orders" domainObjectName="orders"></table>
        <table tableName="orderdetail" domainObjectName="orderdetail"></table>
        <table tableName="items" domainObjectName="items"></table>

    </context>
</generatorConfiguration>

执行逆向工程的类

GeneratorSqlMap.java

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 GeneratorSqlMap {
    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);
    }
    public static void main(String[] args) {
        GeneratorSqlMap generatorSqlMap = new GeneratorSqlMap();
        try {
            generatorSqlMap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

只需要指定配置文件的路径就可以了

 日志文件log4j.properties

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

    原文作者:MyBatis
    原文地址: https://www.cnblogs.com/mrluotong/p/5883604.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞