首页 > 代码库 > mybatis逆向工程

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 configurationlog4j.rootLogger=DEBUG, stdout# MyBatis logging configuration...log4j.logger.org.mybatis.example.BlogMapper=TRACE# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

mybatis逆向工程