龙空技术网

软件测试学习笔记丨Spring Boot 自动生成数据库相关代码模版

霍格沃兹软件测试 47

前言:

如今我们对“如何生成实体类oracle”大概比较关注,朋友们都需要学习一些“如何生成实体类oracle”的相关内容。那么小编同时在网摘上收集了一些有关“如何生成实体类oracle””的相关资讯,希望你们能喜欢,各位老铁们一起来学习一下吧!

本文转自测试人社区,原文链接:jck28 - 小柒 - 后端架构优化设计 - spring boot 自动生成数据库相关代码模版 - 学习笔记 - 测试人社区

一,导入 MyBatisGenerator依赖

<dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.junit.jupiter</groupId>            <artifactId>junit-jupiter-api</artifactId>            <version>5.8.2</version>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <version>RELEASE</version>            <scope>compile</scope>        </dependency>        <!-- mysql连接 -->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>            <version>8.0.29</version>        </dependency>        <!--mybatis坐标-->        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis</artifactId>            <version>3.5.9</version>        </dependency>        <dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>2.1.0</version>        </dependency>        <!--  -->        <dependency>            <groupId>tk.mybatis</groupId>            <artifactId>mapper-spring-boot-starter</artifactId>            <version>2.1.5</version>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>            <plugin>                <groupId>org.mybatis.generator</groupId>                <artifactId>mybatis-generator-maven-plugin</artifactId>                <version>1.3.7</version>                <!--插件设置-->                <configuration>                    <!--允许移动生成的文件-->                    <verbose>true</verbose>                    <!--启用覆盖-->                    <overwrite>true</overwrite>                    <!--自动生成配置 如果名字是generatorConfig.xml可以省略配置-->                    <configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>                </configuration>                <dependencies>                    <dependency>                        <groupId>mysql</groupId>                        <artifactId>mysql-connector-java</artifactId>                        <version>8.0.29</version>                        <scope>runtime</scope>                    </dependency>                    <dependency>                        <groupId>tk.mybatis</groupId>                        <artifactId>mapper</artifactId>                        <version>4.1.5</version>                    </dependency>                </dependencies>            </plugin>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                <configuration>                    <source>8</source>                    <target>8</target>                </configuration>            </plugin>        </plugins>    </build>
导入成功后对应maven可以看到有该插件mvn mybatis-generator:generate二,新增generator/generatorConfig.xml文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"        ";><!-- 配置生成器 --><generatorConfiguration>    <!--执行generator插件生成文件的命令: call mvn mybatis-generator:generate -e -->    <!-- 引入配置文件 -->    <properties resource="generator/config.properties"/>    <!--classPathEntry:数据库的JDBC驱动,换成你自己的驱动位置 可选 -->    <!--    <classPathEntry location="${jdbc.jar.path}"/>-->    <!-- 一个数据库一个context 配置对象环境-->    <!--    id="MysqlTable" :此上下文的唯一标识符。此值将用于一些错误消息。    targetRuntime="MyBatis3Simple":为了避免生成Example相关的代码和方法。如果需要则改为Mybatis3     defaultModelType="flat" :每个表只生成一个实体类    -->    <context id="MysqlTable" targetRuntime="MyBatis3Simple" defaultModelType="flat">        <!-- 配置起始与结束标识符 指明数据库的用于标记数据库对象名的符号-->        <!-- ORACLE就是双引号,MYSQL默认是`反引号  数据库使用mysql,所以前后的分隔符都设为”`”-->        <property name="beginningDelimiter" value="`"/>        <property name="endingDelimiter" value="`"/>        <!--用来定义一个插件,用于扩展或者修改MBG生成的代码,不常用,可以配置0个或者多个,个数不受限制。        只有一个Type标签,其中填插件的全限定名。        常用的有缓存插件,序列化插件,RowBounds插件,ToString插件等。-->        <plugin type="${mapper.plugin}">            <property name="mappers" value="${mapper.Mapper}"/>        </plugin>        <!--数据库连接配置-->        <jdbcConnection driverClass="${jdbc.driver}"                        connectionURL="${jdbc.url}"                        userId="${jdbc.username}"                        password="${jdbc.password}">        </jdbcConnection>        <!-- javaModelGenerator - 配置生成的实体类位置 type使用XMLMAPPER,会使接口和XML完全分离。            targetPackage:放置生成的类的包。 MyBatis Generator 将根据需要为生成的包创建文件夹            targetProject:包所在的project下的位置,指定了将保存对象的项目和源文件夹。该目录不存在,MyBatis Generator 将不会创建该目录        -->        <javaModelGenerator targetPackage="${java.targetPackage}" targetProject="${java.targetProject}">            <!-- 设置一个根对象,如果设置了这个根对象,那么生成的keyClass或者recordClass会继承这个类;            在Table的rootClass属性中可以覆盖该选项            注意:如果在key class或者record class中有root class相同的属性,MBG就不会重新生成这些属性了,            包括:1,属性名相同,类型相同,有相同的getter/setter方法;            rootClass:所有实体类的父类,如果父类定义了一些字段以及对应的getter、setter方法,那么实体类中就不会再生成。必须要类的安全限定名,如com.momo.test.BasePo         -->            <property name="rootClass"                      value="${java.rootClass}"/>        </javaModelGenerator>        <!-- sqlMapGenerator:配置SQL映射生成器(Mapper.xml文件)的属性,可选且最多配置1个  配置映射位置只有两个必选属性(和实体类的差不多):                targetPackage:生成映射文件存放的包名,可能会受到其他配置的影响。                targetProject:指定目标targetPackage的项目路径,可以用相对路径或者绝对路径        -->        <sqlMapGenerator targetPackage="${mapper.targetPackage}" targetProject="${mapper.targetProject}"/>        <!-- 配置接口位置            typetype="XMLMAPPER":接口和XML完全分离;所有方法都在XML中,接口用依赖Xml文件            targetPackage:生成Mapper文件存放的包名,可能会受到其他配置的影响。            targetProject:指定目标targetPackage的项目路径,可以用相对路径        -->        <javaClientGenerator targetPackage="${java.targetMapperPackage}" targetProject="${java.targetProject}"                             type="XMLMAPPER"/>        <!-- table可以有多个,每个数据库中的表都可以写一个table,schema是数据库名,        tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 -->        <!-- 配置数据库表 -->        <table schema="advert" tableName="ads_search_group_premium_kw">            <!-- generatedKey:用来指定自动生成的主键的属性。针对MySql,SQL Server等自增类型主键                   indetity:设置为true时会被标记为indentity列,并且selectKey标签会被插入在Insert标签(order=AFTER)。                   设置为false时selectKey会插入到Insert之前(oracal序列),默认为false.            -->            <generatedKey column="kw_package_id" sqlStatement="Mysql" identity="true"/>        </table>        <!-- 生成用户的相关类 -->        <!--        <table schema="aitest_mini" tableName="hogwarts_test_user" domainObjectName="HogwartsTestUser" enableCountByExample="false" enableDeleteByExample="false"-->        <!--               enableSelectByExample="false" enableUpdateByExample="false" >-->        <!--            <generatedKey column="id" sqlStatement="Mysql" identity="true"/>-->        <!--        </table>-->    </context></generatorConfiguration>
三,新增config.properties文件
# 数据库配置jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://10.52.46.11:33066jdbc.username=mysqljdbc.password=123456# 通用Mapper配置mapper.plugin=tk.mybatis.mapper.generator.MapperPluginmapper.Mapper=com.ceshiren.common.MySqlExtensionMapper#entity类和实体类的位置java.targetProject=src/main/java#实体类的包名java.targetPackage=com.ceshiren.entity#实体类的根包名java.rootClass=com.ceshiren.entity.BaseEntityNew#mapperXML文件路径mapper.targetPackage=mapper#mapper.xml位置mapper.targetProject=src/main/resources#entity类的包名java.targetMapperPackage=com.ceshiren
四,新增对应报错的文件MySqlExtensionMapper
package com.ceshiren.common;import tk.mybatis.mapper.common.IdsMapper;import tk.mybatis.mapper.common.Mapper;import tk.mybatis.mapper.common.MySqlMapper;public interface MySqlExtensionMapper<T> extends Mapper<T>, MySqlMapper<T>, IdsMapper<T> {}
BaseEntityNew
package com.ceshiren.entity;import java.io.Serializable;public class BaseEntityNew implements Serializable {    private static final long serialVersionUID = 2054813493011812469L;}
五,执行插件语句,生成对应的文件软件测试开发免费视频教程分享 - 公众号 - 测试人社区

标签: #如何生成实体类oracle