Mybatis3 GeneratorConfig.xml完整配置
博客专区 > Bingo许 的博客 > 博客详情
Mybatis3 GeneratorConfig.xml完整配置
Bingo许 发表于8个月前
Mybatis3 GeneratorConfig.xml完整配置
  • 发表于 8个月前
  • 阅读 24
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

用过Mybatis的人肯定知道Mybatis开发的三剑客:通用Mapper、分页pageHelper、文件生成Generator。Generator可以根据物理表生成对应实体、Dao层、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>
	<!-- 指定数据连接驱动jar地址 -->
	<!-- <classPathEntry location="/Users/xubin/.m2/repository/mysql/mysql-connector-java-5.1.41.jar" 
		/> -->
	<context id="Mysql" targetRuntime="MyBatis3Simple"
		defaultModelType="flat">

		<!-- 生成的Java文件的编码 -->
		<property name="javaFileEncoding" value="UTF-8" />
		<!-- 格式化java代码 -->
		<property name="javaFormatter"
			value="org.mybatis.generator.api.dom.DefaultJavaFormatter" />
		<!-- 格式化XML代码 -->
		<property name="xmlFormatter"
			value="org.mybatis.generator.api.dom.DefaultXmlFormatter" />

		<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
			<property name="mappers" value="com.minivision.util.IMapper" />
			<!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
			<property name="caseSensitive" value="true" />
		</plugin>

		<!-- 注释 -->
		<commentGenerator>
            <!-- 是否取消注释 -->
			<property name="suppressAllComments" value="false" />
            <!-- 是否生成注释代时间戳 -->
			<property name="suppressDate" value="true" /> 
		</commentGenerator>

		<!-- jdbc连接 -->
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://localhost:3306/test?useSSL=true" userId="root"
			password="123456">
		</jdbcConnection>

		<!-- 生成实体类地址 -->
		<javaModelGenerator targetPackage="com.test.entity"
			targetProject="./src/main/java">
            <!-- 继承父类 -->
<!-- 			<property name="rootClass" value="com.test.common.base.BaseEntity"/> -->
			<property name="enableSubPackages" value="false" />
			<!-- 是否针对string类型的字段在set的时候进行trim调用 -->
			<property name="trimStrings" value="true" />
		</javaModelGenerator>

		<!-- 生成mapxml文件 -->
		<sqlMapGenerator targetPackage="mapper" targetProject="./src/main/resources">
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>

		<!-- 生成mapxml对应client,也就是接口dao -->
		<javaClientGenerator targetPackage="com.test.mapper"
			targetProject="./src/main/java" type="XMLMAPPER">
			<property name="enableSubPackages" value="false"/>
            <!-- 实现接口 -->
<!-- 			<property name="rootInterface" value="tk.mybatis.mapper.common.MySqlMapper"/> -->
		</javaClientGenerator>

		<!-- 配置表信息 -->
		<table tableName="T_USER" domainObjectName="User"
			enableCountByExample="false" enableDeleteByExample="false"
			enableSelectByExample="false" enableUpdateByExample="false">
			<!-- 忽略列,不生成bean 字段 <ignoreColumn column="FRED" /> -->
			<!-- 指定列的java数据类型 <columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" 
				/> -->
		</table>

	</context>
</generatorConfiguration>

 GenConfigMain.java

package com.test;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
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.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class GenConfigMain {
    public static void main(String[] args) {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        String genCfg = "generatorConfig.xml";
        File configFile = new File(GenConfigMain.class.getResource(genCfg).getFile());
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = null;
        try {
            config = cp.parseConfiguration(configFile);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        catch (XMLParserException e) {
            e.printStackTrace();
        }
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = null;
        try {
            myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        }
        catch (InvalidConfigurationException e) {
            e.printStackTrace();
        }
        try {
            myBatisGenerator.generate(null);
        }
        catch (SQLException e) {
            e.printStackTrace();
        }
        catch (IOException e) {
            e.printStackTrace();
        }
        catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

需要注意的是:

1、在生成的Dao层文件中,如果要继承某个接口,使用(<property name="mappers" value="com.test.util.IMapper" />),rootInterface也可以,但是不能自动生成泛型。

2、生成的Dao层文件没有注解,需要自行添加。

3、在数据库配置那段,需要加useSSL=true以去除运行时控制台报警。

共有 人打赏支持
粉丝 2
博文 18
码字总数 28863
×
Bingo许
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: