Mybatis-逆向工程

逆向工程生成Mybatis映射文件及持久化类

使用IDEA逆向工程生成Mybatis的配置文件没有Hibernate那么方便—Hibernate逆向工程,因为IDEA没有Mybatis的逆向工程插件,所以想要使用Mybatis逆向工程,需要创建一个Java项目,利用Mybatis官方提供的jar包:mybatis-generator-core-1.3.2,完成逆向工程操作

1.创建一个逆向工程项目

我创建了一个Mybatis逆向工程项目并把它放到了码云上,链接地址–Mybatis逆向工程
如果自己创建项目,则创建一个普通Java项目即可(我创建了一个Maven项目)
1,创建一个Java类GeneratorSqlmap
2,导入log4j日志文件
3,在项目目录下创建一个逆向工程配置文件generatorConfig.xml
4,导入jar包,最重要的是mybatis-generator-core-1.3.2(实现逆向工程的工具类都在这个jar包中)

项目结构如图所示

项目目录

2.完善工具类及配置文件

1.log4j配置文件(对项目没有影响,一般配置即可)

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=d:\\mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###
### fatal error warn info debug trace
log4j.rootLogger=off, stdout

2.工具类GeneratorSqlmap(不用改动)

package com.itheima.utils;

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;

public class GeneratorSqlmap {

    public void generator() throws Exception{

        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        //指定逆向工程配置文件generatorConfig.xml
        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);

    } 
    //项目配置完成后运行main程序即可获得映射文件和持久化类
    public static void main(String[] args) throws Exception {
        try {
            GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

3.配置逆向工程配置文件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>
            <!-- 1.是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--2.配置Mysql数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/babasport" userId="root"
            password="***">
        </jdbcConnection>
        <!--oracle数据库的连接配置-->
        <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
            connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" 
            userId="yycg"
            password="yycg">
        </jdbcConnection> -->

        <!-- 3.默认false,把JDBC DECIMAL和NUMERIC类型解析为 Integer,为 true时把JDBC DECIMAL和NUMERIC类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- 4.targetProject:生成持久化类的位置 -->
        <javaModelGenerator targetPackage="com.sandking.mybatis.pojo"
            targetProject=".\src">
            <!-- 5.enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 6.从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 7.targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="com.sandking.mybatis.mapper"
            targetProject=".\src">
            <!-- 8.enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- 9.targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
            targetPackage="com.sandking.mybatis.mapper"
            targetProject=".\src">
            <!-- 10.enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>

        <!-- 11.指定数据库表 -->
        <table schema="" tableName="bbs_color"></table>
        <table schema="" tableName="bbs_city"></table>
        <!-- 12.有些表的字段需要指定java类型
        <table schema="" tableName="user">
            <columnOverride column="id" javaType="Long" />
        </table>-->
    </context>
</generatorConfiguration>

上述配置文件的配置只有部分是需要根据不同的项目做相应更改的,大部分配置使用默认即可

需要根据不同项目做相应更改的地方

2.连接数据库的用户名和密码
4.持久化类的生成位置
7.mapper映射文件的生成位置
9.mapper接口的生成位置
11.配置数据库的表的信息,只用配置tableName属性(数据库表表名)

3.运行工程生成配置文件及持久化类

这里写图片描述
运行GeneratorSqlmap的main方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值