您的位置:首页 > 其它

Mybatis-逆向工程

2017-09-28 16:20 225 查看

逆向工程生成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方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: