发表于: 2021-01-03 23:09:18

3 1419


今天完成的事情:

MYBATIS GENERATOR逆向工程使用



明天计划的事情:
试着用Faker生成假数据

写好单元测试,和Service。每一张表的增删改查创建好



遇到的问题:
1.项目结构要不要分门别类?

2.改了之后,配置文件该怎么配置?

3.每张数据表都要写单元测试和Service吗?工程量好大


收获:
直接开始先建项目,试试使用Faker1.0.2插件批量生成假数据+MYBATIS GENERATOR代码生成


=========

配置mybatis-generator


先把项目结构创建出来



第一步:
在pom.xml文件添加插件配置
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.31</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>mybatis generator</id>
<phase>package</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<!--允许移动生成的文件-->
<verbose>true</verbose>
<!--允许自动覆盖文件-->
<overwrite>true</overwrite>
<configurationFile>
src/main/resources/generatorConfig.xml
</configurationFile>
</configuration>
</execution>
</executions>
</plugin>
注意:这两个不能放在<plugin>的外面,不然就会报错




报错内容:




==================================
第二步:创建db.properties文件





第三步:创建generatorConfig.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
<generatorConfiguration>
<!-- 用于指定全局配置文件,下面可以通过占位符的形式读取<properties>指定文件中的值。-->
<properties resource="db.properties"/>
<!-- context 是逆向工程的主要配置信息 -->
<!-- id:起个名字 -->
<!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
<context id="default" targetRuntime="MyBatis3">
<!--jdbc的数据库连接-->
<!--这里是以变量的形式定义,具体的值在 db.properties 文件中-->
<!--jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC-->
<jdbcConnection driverClass="${jdbc.driver}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<!-- targetPackage:生成的实体类所在的包 -->
<!-- targetProject:生成的实体类所在的硬盘位置 -->
<!-- DataObject 类存放位置 -->
<javaModelGenerator targetPackage="com.kbk.model"
targetProject=".\src\main\java">
<!-- 是否允许子包 -->
<property name="enableSubPackages" value="false" />
<!-- 是否对modal添加构造函数 -->
<property name="constructorBased" value="true" />
<!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
<property name="trimStrings" value="true" />
<!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 -->
<property name="immutable" value="false" />
</javaModelGenerator>
<!-- targetPackage  targetProject:生成的 mapper 文件的包和位置 -->
<sqlMapGenerator targetPackage="mapping"
targetProject=".\src\main\resources">
<!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage  targetProject:生成的 interface 文件的包和位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.kbk.dao" targetProject=".\src\main\java">
<!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!--生成对应表及类名-->
<table tableName="tourist" domainObjectName="Tourist">
</table>
</context>
</generatorConfiguration>



第四步:配置mybatis-generator 插件



第五步:运行mybatis-generator  插件





参考网址:1.https://www.cnblogs.com/throwable/p/12046848.html#xml%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%A6%E8%A7%A3

=================



疑问1:为什么这里是long?怎么让它生成Integer?



在这里加上


包装类


==============
疑问二:UserExample是什么?




mybatis-generator会为每个字段产生Criterion,为底层的mapper.xml创建动态sql。如果表的字段比较多,产生的example类会十分庞大。理论上通过example类可以构造你想到的任何筛选条件。在mybatis-generator中加以配置,配置数据表的生成操作就可以自动生成example了。
=======
删除注释

加上这个


<commentGenerator>
<!-- 抑制警告 -->
<property name="suppressTypeWarnings" value="true" />
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
<!-- 是否生成注释代时间戳-->
<property name="suppressDate" value="true" />
</commentGenerator>




===========
mybatis-generator原来这个叫mybatis的逆向工程
==============

假数据

看着理解了好久,明天动手做










返回列表 返回列表
评论

    分享到