mybatis代码生成器

pom.xml配置

  • 依赖
<properties>
	<mybatis.generator.version>1.3.5</mybatis.generator.version>
</properties>

<!-- mybatis generator -->
<dependency>
  <groupId>org.mybatis.generator</groupId>
  <artifactId>mybatis-generator-core</artifactId>
  <version>${mybatis.generator.version}</version>
</dependency>
<!-- mybatis generator -->
  • 插件
<!-- mybatis generator -->
<plugin>
  <groupId>org.mybatis.generator</groupId>
  <artifactId>mybatis-generator-maven-plugin</artifactId>
  <version>${mybatis.generator.version}</version>
  <configuration>
    <configurationFile>src/main/resource/config/generatorConfig.xml</configurationFile>
    <!-- 是否将生成过程输出至控制台 -->
    <verbose>true</verbose>
    <!-- 是否覆盖同名文件(只是针对XML文件,java文件生成类似*.java.1、*.java.2形式的文件) -->
    <overwrite>true</overwrite>
  </configuration>
</plugin>
<!-- mybatis generator -->

generator.properties配置

master.jdbc.driver=com.mysql.jdbc.Driver
master.jdbc.url=jdbc:mysql://localhost:3306/kong?useUnicode=true&characterEncoding=utf-8&autoReconnect=true
master.jdbc.username=root
master.jdbc.password=root

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>
  <properties resource="properties/generator.properties"/>
  <context id="mysqlGenerate" targetRuntime="Mybatis3">
    <!-- 注释相关 -->
    <commentGenerator>
      <!-- 是否去除自动生成的注释 true:是 false:否(默认) -->
      <property name="suppressAllComments" value="true"/>
      <!-- 是否将在生成的注释中包含来自db表的表和列注释 true:是 false:否(默认) -->
      <!-- 如果suppressAllComments选项为true,则将忽略此选项 -->
      <!--<property name="addRemarkComments" value="false"/>-->

      <!-- 生成注释中是否包含生成时间戳 true:是  false:否(默认) -->
      <property name="suppressDate" value="true"/>
      <!-- 在将日期写入生成的注释时使用的日期格式字符串 -->
      <!-- 如果suppressDate选项为true,则将忽略此选项 -->
      <!--<property name="dateFormat" value="yyyy-MM-dd"/>-->
    </commentGenerator>
    <!-- 注释相关 -->
    <!-- 数据库相关 -->
    <jdbcConnection
                    driverClass="${master.jdbc.driver}"
                    connectionURL="${master.jdbc.url}"
                    userId="${master.jdbc.username}"
                    password="${master.jdbc.password}"/>
    <!-- 数据库相关 -->
		<!-- 类型转换相关 -->
    <javaTypeResolver>
      <!-- 将JDBC DECIMAL和NUMERIC类型解析为Integral类型 -->
      <!--
                false(默认值):
                    如果比例大于零,或者长度大于18,则将使用java.math.BigDecimal类型
                    如果比例为零,并且长度为10到18,那么Java类型解析器将替换java.lang.Long。
                    如果比例为零,并且长度为5到9,那么Java类型解析器将替换java.lang.Integer。
                    如果比例为零,并且长度小于5,那么Java类型解析器将替换java.lang.Short。
                true:始终将JDBC DECIMAL和NUMERIC类型解析为java.math.BigDecimal类型
             -->
      <property name="forceBigDecimals" value="true"/>
      <!-- 类型转换 -->
      <!--
                true和false都转换:
                    TIME_WITH_TIMEZONE      -> java.time.OffsetTime
                    TIMESTAMP_WITH_TIMEZONE -> java.time.OffsetDateTime
                true:
                    DATE      -> java.time.LocalDate
                    TIME      -> java.time.LocalTime
                    TIMESTAMP -> java.time.LocalDateTime
             -->
      <!--<property name="useJSR310Types" value="true"/>-->
    </javaTypeResolver>
		<!-- 类型转换相关 -->
    <!-- 生成实体类 -->
    <javaModelGenerator targetPackage="com.company.portal.model"
                        targetProject="E:/Code/SSM/portal/src/main/java/">
      <!-- 是否让schema作为包的后缀 -->
      <property name="enableSubPackages" value="false"/>
      <!-- 清楚数据库返回值的前后空格 -->
      <property name="trimStrings" value="true"/>
    </javaModelGenerator>
    <!-- mapper映射文件生成位置 -->
    <sqlMapGenerator targetPackage="com.company.portal.mapper"
                     targetProject="E:/Code/SSM/portal/src/main/java/">
      <!-- 是否让schema作为包的后缀 -->
      <property name="enableSubPackages" value="false"/>
    </sqlMapGenerator>
    <!-- mapper接口生成的位置 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.company.portal.mapper"
                         targetProject="E:/Code/SSM/portal/src/main/java/">
      <!-- 是否让schema作为包的后缀 -->
      <property name="enableSubPackages" value="false"/>
    </javaClientGenerator>
		<!-- 生成实体类 -->
    <!-- 指定数据库表 -->
    <table tableName="user"/>
    <!-- 指定数据库表 -->
  </context>
</generatorConfiguration>

生成代码

//代码生成逻辑
public void generator() throws Exception {
  List<String> warnings = new ArrayList<>();
  boolean overwrite = true;
  //指定逆向工程配置文件
  File configFile = new 			 	File("E:\\Code\\SSM\\portal\\src\\main\\resources\\config\\generatorConfig.xml");
  ConfigurationParser parser = new ConfigurationParser(warnings);
  Configuration config = parser.parseConfiguration(configFile);
  DefaultShellCallback callback = new DefaultShellCallback(overwrite);
  MyBatisGenerator generator = new MyBatisGenerator(config, callback, warnings);
  generator.generate(null);
}

public static void main(String[] args) throws Exception {
  try {
    PortalGenerator generator = new PortalGenerator();
    generator.generator();
  } catch (Exception e) {
    throw new Exception();
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值