zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    poj 3122 (二分查找)
    poj 1064 (二分+控制精度) && hdu 1551
    hdu 2199 (二分)
    hdu 2141 (二分)
    poj 2954 Triangle(Pick定理)
    poj 1265 Area (Pick定理+求面积)
    hdu 4946 Just a Joke(数学+物理)
    zoj 1199 几何公式推导
    MMORGP大型游戏设计与开发(客户端架构 part13 of vegine)
    MMORPG大型游戏设计与开发(客户端架构 part12 of vegine)
  • 原文地址:https://www.cnblogs.com/mrluotong/p/5883604.html
Copyright © 2011-2022 走看看