前言:
如今我们对“如何生成实体类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