软件编程
位置:首页>> 软件编程>> java编程>> 详解在idea 中使用Mybatis Generator逆向工程生成代码

详解在idea 中使用Mybatis Generator逆向工程生成代码

作者:殇灬央  发布时间:2023-09-09 17:05:24 

标签:maven,Mybatis,逆向工程

通过MAVEN完成 Mybatis 逆向工程

1. POM文件中添加插件

在 pom 文件的build 标签中 添加 plugin 插件和 数据库连接 jdbc 的依赖。


<build>
 <plugins>
   <plugin>
     <groupId>org.mybatis.generator</groupId>
     <artifactId>mybatis-generator-maven-plugin</artifactId>
     <version>1.4.0</version>
     <dependencies>
       <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>8.0.13</version>
       </dependency>
     </dependencies>
     <configuration>
       <!-- 输出详细信息 -->
       <verbose>true</verbose>
       <!-- 覆盖生成文件 -->
       <overwrite>true</overwrite>
       <!-- 定义配置文件 -->
       <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
     </configuration>
   </plugin>
 </plugins>
</build>

若不在pom文件中引入数据库连接依赖,也可在配置文件中通过本地方式启动连接。

2. 在自己定义的位置上添加配置文件 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后 通过此方式导入属性 ${userId} -->
 <!--  <properties resource="generator.properties"></properties>-->

<!-- 数据库驱动: 若之前未在build里配置数据库驱动包,可选择本地硬盘上面的数据库驱动包-->
 <classPathEntry location="D:\Maven\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/>

<!-- targetRuntime 默认为MyBatis3DynamicSql,该值不会生成xml文件, 可选择Mybatis3 -->
 <context id="default" targetRuntime="Mybatis3">

<!-- optional,旨在创建class时,对注释进行控制 -->
   <commentGenerator>
     <!-- 是否去除自动生成的注释 true:是 : false:否 -->
     <property name="suppressAllComments" value="true" />
   </commentGenerator>

<!-- 配置数据库连接 -->
   <jdbcConnection
       driverClass="com.mysql.jdbc.Driver"
       connectionURL="jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai"
       userId="root"
       password="123456">
   </jdbcConnection>

<!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
   <javaTypeResolver >
     <property name="forceBigDecimals" value="false" />
   </javaTypeResolver>

<!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
      targetPackage   指定生成的model生成所在的包名
      targetProject   指定在该项目下所在的路径
   -->
   <javaModelGenerator targetPackage="com.demo.dao.pojo" targetProject="src/main/java">
     <!-- 是否允许子包,即targetPackage.schemaName.tableName -->
     <property name="enableSubPackages" value="true"/>
     <!-- 是否对model添加 构造函数 -->
     <property name="constructorBased" value="false"/>
     <!-- 是否对类CHAR类型的列的数据进行trim操作 -->
     <property name="trimStrings" value="false"/>
     <!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
     <property name="immutable" value="true"/>
   </javaModelGenerator>

<!-- 生成映射文件的包名和位置-->
   <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
     <property name="enableSubPackages" value="false"/>
   </sqlMapGenerator>

<!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
       type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
       type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
       type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
   -->
   <javaClientGenerator targetPackage="com.demo.dao.mapper" targetProject="src/main/java" type="XMLMAPPER">
     <property name="enableSubPackages" value="false"/>
   </javaClientGenerator>
   <table tableName="aging_demotion" domainObjectName="AgingDemotion"
       enableCountByExample="false" enableUpdateByExample="false"
       enableDeleteByExample="false" enableSelectByExample="false"
       selectByExampleQueryId="false">
    <!-- 插入时自动返回主键ID -->
    <generatedKey column="aging_demotion_id" sqlStatement="Mysql" identity="true" />
   </table>

<table tableName="aging_listener" domainObjectName="AgingListener"
       enableCountByExample="false" enableUpdateByExample="false"
       enableDeleteByExample="false" enableSelectByExample="false"
       selectByExampleQueryId="false">
   </table>

<table tableName="aging_state" domainObjectName="AgingState"
       enableCountByExample="false" enableUpdateByExample="false"
       enableDeleteByExample="false" enableSelectByExample="false"
       selectByExampleQueryId="false">
   </table>
 </context>
</generatorConfiguration>

XML配置信息可参考mybatis官网:http://mybatis.org/generator/configreference/xmlconfig.html

3.通过maven启动

详解在idea 中使用Mybatis Generator逆向工程生成代码

点击mybatis-generate:generate即可生成对应 java,mapper 和 pojo实体类。(若maven没有显示此插件,可点击左上角刷新)

4.Insert时返回自增主键

通过generatedKey 使其插入时返回ID,其值必须为数值型自增主键。

其逆向生成的代码为:


<selectKey keyProperty="agingDemotionId" order="AFTER" resultType="java.lang.Long">
  SELECT LAST_INSERT_ID()
</selectKey>

也可自己通过这种方式实现返回自增ID。


<insert id="insert" useGeneratedKeys="true" keyProperty="agingDemotionId"
     parameterType="com.jd.aging.presentation.domain.AgingDemotionEntity">

这种方式只适用于传入对象时,insert方法成功依旧返回的是 1, 不过传入的实体类对象中 主键 ID 的值 不再为 null, 而是获得该插入实体类的主键ID值。

详解在idea 中使用Mybatis Generator逆向工程生成代码

来源:https://www.cnblogs.com/shangyang/archive/2020/12/14/14135811.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com