java自动生成pojo,springboot自动生成pojo

embedded/2024/12/22 9:10:32/

第一步 pom引入依赖

    <dependencies><!-- mybatis-generator --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.7</version></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

第二步 创建自动生成代码配置
在这里插入图片描述
配置文件一 ,用于生成代码时连接数据库拿表数据的。
generator.properties
我这里路径是项目全路径,有一下可能只需要src\main\resources,根据自己配置
targetProject=“zhoao\src\main\resources”

jdbc.driverClass=com.mysql.cj.jdbc.Driver
jdbc.connectionURL=jdbc:mysql://localhost:3306/dade?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
jdbc.userId=root
jdbc.password=123456

配置文件二 ,用于生成代码时 指定生成的 目录路径、代码函数等。
generatorConfig.xml

保存文件路径
targetProject=“zhoao\src\main\resources”

自定义表名

<table tableName="cdj_order_87"  enableCountByExample="false"  mapperName="UserAccountMapper" domainObjectName="cdj_order_87" />
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration><properties resource="generator.properties"/><context id="MySqlContext" targetRuntime="MyBatis3" defaultModelType="flat"><property name="beginningDelimiter" value="`"/><property name="endingDelimiter" value="`"/><property name="javaFileEncoding" value="UTF-8"/><!-- 为模型生成序列化方法--><plugin type="org.mybatis.generator.plugins.SerializablePlugin"/><!-- 为生成的Java模型创建一个toString方法 --><plugin type="org.mybatis.generator.plugins.ToStringPlugin"/><!--生成mapper.xml时覆盖原文件--><plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" /><!--可以自定义生成model的代码注释--><commentGenerator type="com.util.CommentGenerator"><!-- 是否去除自动生成的注释 true:是 : false:否 --><property name="suppressAllComments" value="true"/><property name="suppressDate" value="true"/><property name="addRemarkComments" value="true"/></commentGenerator><!--配置数据库连接--><jdbcConnection driverClass="${jdbc.driverClass}"connectionURL="${jdbc.connectionURL}"userId="${jdbc.userId}"password="${jdbc.password}"><!--解决mysql驱动升级到8.0后不生成指定数据库代码的问题--><property name="nullCatalogMeansCurrent" value="true" /></jdbcConnection><!--指定生成model的路径--><javaModelGenerator targetPackage="com.pojo" targetProject="zhoao\src\main\java"/><!--指定生成mapper.xml的路径-->
<!--        <sqlMapGenerator targetPackage="mybatis.mapper" targetProject="zhoao\src\main\resources"/>--><!--指定生成mapper接口的的路径-->
<!--        <javaClientGenerator type="XMLMAPPER" targetPackage="com.dao" targetProject="zhoao\src\main\java"/>--><!--生成全部表tableName设为%--><table tableName="%" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false"enableSelectByExample="false" selectByExampleQueryId="false"><property name="useActualColumnNames" value="false"/><property name="constructorBased" value="false"/><generatedKey column="id" sqlStatement="JDBC" identity="true"/></table></context>
</generatorConfiguration>

这个是使用备注添加器(第三步的内容):
在这里插入图片描述
第三步 创建代码生成器 Generator
在这里插入图片描述
CommentGenerator.java

package com.util;import org.mybatis.generator.internal.DefaultCommentGenerator;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.internal.util.StringUtility;import java.util.Properties;public class CommentGenerator extends DefaultCommentGenerator {private boolean addRemarkComments = false;/*** 设置用户配置的参数*/@Overridepublic void addConfigurationProperties(Properties properties) {super.addConfigurationProperties(properties);this.addRemarkComments = StringUtility.isTrue(properties.getProperty("addRemarkComments"));}/*** 给字段添加注释*/@Overridepublic void addFieldComment(Field field, IntrospectedTable introspectedTable,IntrospectedColumn introspectedColumn) {String remarks = introspectedColumn.getRemarks();//根据参数和备注信息判断是否添加备注信息if (addRemarkComments && StringUtility.stringHasValue(remarks)) {addFieldJavaDoc(field, remarks);}}/*** 给model的字段添加注释*/private void addFieldJavaDoc(Field field, String remarks) {//文档注释开始field.addJavaDocLine("/**");//获取数据库字段的备注信息String[] remarkLines = remarks.split(System.getProperty("line.separator"));for (String remarkLine : remarkLines) {field.addJavaDocLine(" * " + remarkLine);}addJavadocTag(field, false);field.addJavaDocLine(" */");}}

Generator.java

package com.util;import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;public class Generator {public static void main(String[] args) throws Exception {//MBG 执行过程中的警告信息List<String> warnings = new ArrayList<String>();//当生成的代码重复时,覆盖原代码boolean overwrite = true;//读取我们的 MBG 配置文件InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml");ConfigurationParser cp = new ConfigurationParser(warnings);Configuration config = cp.parseConfiguration(is);is.close();DefaultShellCallback callback = new DefaultShellCallback(overwrite);//创建 MBGMyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);//执行生成代码myBatisGenerator.generate(null);//输出警告信息for (String warning : warnings) {System.out.println(warning);}}
}

然后点击一下代码生成器Generator 的 main方法:
在这里插入图片描述
生成啦,我这里只生成pojo,其它两个可以把xml的注销去掉生成
在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/embedded/19673.html

相关文章

一篇文章带您学会CSS的动画

动画和过渡的区别 过渡&#xff1a;实现两个状态间的变化过程。 动画&#xff1a;实现多个状态间的变化过程。动画过程可控&#xff08;重复播放&#xff0c;最终动画&#xff0c;是否暂停&#xff09; 动画的实现步骤 1.定义动画 书写格式 keyframes 动画名称{from{}to{…

开机流程+文件系统

linux的开机启动流程 1.开启电源 2.BIOS/UEFI 阶段&#xff1a; 计算机开机时&#xff0c;首先执行基本输入/输出系统 (BIOS) 或统一可扩展固件接口 (UEFI) 中的启动程序。 BIOS/UEFI 会进行自检 (POST)&#xff0c;初始化硬件设备&#xff0c;并检测可用的启动设备。 3.Boot…

SQL查询一页数据过多太慢

一页取5000~10000条数据 查询很慢 1&#xff09;加索引 2&#xff09;设置fetchSize Select("<script> SELECT * from A \n" "</script>") Options(fetchSize 3000, resultSetType ResultSetType.FORWARD_ONLY) …

【经验分享】MySQL集群部署一:主从模式

目录 前言一、基本介绍1.1、概念1.2、执行流程 二、部署2.1、通用配置2.2、主节点配置2.3、从节点配置2.4、主从测试2.5、谈一谈主节点历史数据同步问题 前言 MySQL的部署模式常见的包括以下几种&#xff1a; 独立服务器部署主从复制部署高可用性集群&#xff08;HA&#xff…

Node.js 环境变量动态获取和静态获取的区别

Node.js 环境变量动态获取和静态获取的区别 Node.js 环境 vs 浏览器环境 process.env.SERVICE_PORTAL: 适用环境&#xff1a;Node.js 环境。用途&#xff1a;访问操作系统的环境变量。 import.meta.env.SERVICE_PORTAL: 适用环境&#xff1a;浏览器环境&#xff0c;特别是在使…

小程序线多点路图绘制

需求 当接口返回一连串地图坐标&#xff0c;需要根据这些坐标串联起来&#xff0c;形成一个线路图&#xff08;本次使用步行导航线路图&#xff09;。 思路 首先优先想到使用小程序Map组件的polyline属性去进行展示。但是我们发现直接使用该属性进行坐标绘制画出来的数据都是…

【海博】雅思该怎么考?

文章目录 考试类型 考试内容 考试形式 备考资源 考试报名 考试成绩 考试类型 学术类&#xff08;A类&#xff09;适用于&#xff1a;出国留学申请本科&#xff0c;研究生及以上学位&#xff0c;或获得专业资质。学术类考试评估考生的英语水平是否满足进行大学或研究生学习…

Pandas 2.2 中文官方教程和指南(十一·一)

原文&#xff1a;pandas.pydata.org/docs/ PyArrow 功能 原文&#xff1a;pandas.pydata.org/docs/user_guide/pyarrow.html pandas 可以利用PyArrow来扩展功能并改善各种 API 的性能。这包括&#xff1a; 与 NumPy 相比&#xff0c;拥有更广泛的数据类型 对所有数据类型支持缺…