springboot如何自动生成mybatis映射文件、dao、pojo层文件?

背景:以前一直是直接cv一个项目中现成的xml文件,然后再去自己配置mapper等数据。自己准备做一个单独的例子试一下。

步骤1:在pom.xml文件中插入mybatis-generator插件,这里选的版本是1.3.2,然后指定的generator文件是在resource下的generator文件下的generatorConfig.xml文件下,这个文件是自己创造的。会让这个插件根据这个文件来创建各种文件。

   <plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><configuration><configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile><overwrite>true</overwrite><verbose>true</verbose></configuration><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version><scope>runtime</scope></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.2</version></dependency></dependencies></plugin>

然后创建该文件,复制以下的文件内容到该文件中,并对其进行相应修改:

<?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><!-- jdbc的jar包位置,插件需要连接数据库 --><!--location存放绝对路径--><classPathEntry location="lib/mysql-connector-java-8.0.22.jar"/><!--id随便起,版本用的是MyBatis3--><context id="default" targetRuntime="MyBatis3"><!-- 是否去除自动生成的注释--><commentGenerator><property name="suppressAllComments" value="true"/></commentGenerator><!--数据库连接参数--><jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://192.168.157.128:3306/KH?characterEncoding=utf-8&amp;serverTimezone=Asia/Shanghai"userId="root"password="123456"></jdbcConnection><!-- 类型处理器,在数据库类型和java类型之间的转换控制--><javaTypeResolver><property name="forceBigDecimals" value="false"/></javaTypeResolver><!--pojo类的生成--><!-- targetProject:JAVA类路径 targetProject:生成的POJO类的包--><!--com.first.pojo路径需要自己创建,即在src/main/java下创建--><javaModelGenerator targetProject="src/main/java" targetPackage="com.example.mybatis.pojo"><!-- 是否生成子包,即pojo下创建javaBean类时是否再建个包 --><property name="enableSubPackages" value="false"/><!-- 设置是否在getter方法中,对String类型字段调用trim()方法,即把两边的空格去掉 --><property name="trimStrings" value="true"/></javaModelGenerator><!--映射文件生成--><!-- targetProject:配置文件路径 targetPackage:生成映射文件的位置 --><!--com.first.mapper路径也需要自己创建,即在src/main/resources下创建,且必须一层一层创建--><sqlMapGenerator targetProject="src/main/resources" targetPackage="mappers"><!-- 是否生成子包 --><property name="enableSubPackages" value="false"/></sqlMapGenerator><!--持久层接口包生成--><!-- targetPackage:JAVA类路径 targetProject:生成的持久层接口包 --><!--com.first.mapper路径也需要自己创建,即在src/main/java下创建-->
<!--        <javaClientGenerator targetProject="src/main/java" targetPackage="com.example.mybatis.service" type="XMLMAPPER">--><javaClientGenerator targetProject="src/main/java" targetPackage="com.example.mybatis.mapper" type="XMLMAPPER"><!-- 是否生成子包 --><property name="enableSubPackages" value="false"/></javaClientGenerator><!-- 数据库表,表名不要和其他库中的表名一样 -->
<!--        <table tableName="player_accounts"></table>--><table tableName="player_accounts" domainObjectName="PlayerAccounts" enableCountByExample="false" enableUpdateByExample="false"enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"><property name="useActualColumnNames" value="false"/><!-- 数据库表主键 --><generatedKey column="id" sqlStatement="Mysql" identity="true"/></table></context>
</generatorConfiguration>

上面的配置中有下面几个需要修改的地方:

<classPathEntry location="lib/mysql-connector-java-8.0.22.jar"/>

这个的mysql的jar版本要改为自己使用的,然后要在自己设置的maven的repository中找到mysql-connector-java-xxxxxx.jar这个jar包,放到项目的根目录下的一个文件夹中,我这里创建了一个lib文件夹并放到里面,所以这里设置的是lib/mysql-xxxxxxxxxxx。

第二个要改的地方是:

<!--数据库连接参数-->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://192.168.157.128:3306/KH?characterEncoding=utf-8&amp;serverTimezone=Asia/Shanghai"userId="root"password="123456">
</jdbcConnection>

这里改为自己的数据库连接的参数。

第三个要改的地方是:

<javaTypeResolver><property name="forceBigDecimals" value="false"/>
</javaTypeResolver>

这个处理数据库中的DECIMAL和NUMERIC类型,设置为true就会将其映射为java.math.BigDecimal类型,如果设置为false就会先判断是否有其他的数据类型可以满足这个数据,如果有就会优先另外的数据类型而不是BigDecimal。

第四个要改的地方是持久层,映射文件和pojo层的文件的位置。

将后面的com.example.xxx改为自己项目对应的路径。

   <javaModelGenerator targetProject="src/main/java" targetPackage="com.example.mybatis.pojo"><!-- 是否生成子包,即pojo下创建javaBean类时是否再建个包 --><property name="enableSubPackages" value="false"/><!-- 设置是否在getter方法中,对String类型字段调用trim()方法,即把两边的空格去掉 --><property name="trimStrings" value="true"/></javaModelGenerator><!--映射文件生成--><!-- targetProject:配置文件路径 targetPackage:生成映射文件的位置 --><!--com.first.mapper路径也需要自己创建,即在src/main/resources下创建,且必须一层一层创建--><sqlMapGenerator targetProject="src/main/resources" targetPackage="mappers"><!-- 是否生成子包 --><property name="enableSubPackages" value="false"/></sqlMapGenerator><!--持久层接口包生成--><!-- targetPackage:JAVA类路径 targetProject:生成的持久层接口包 --><!--com.first.mapper路径也需要自己创建,即在src/main/java下创建-->
<!--        <javaClientGenerator targetProject="src/main/java" targetPackage="com.example.mybatis.service" type="XMLMAPPER">--><javaClientGenerator targetProject="src/main/java" targetPackage="com.example.mybatis.mapper" type="XMLMAPPER"><!-- 是否生成子包 --><property name="enableSubPackages" value="false"/></javaClientGenerator>

最后一个要改的地方是映射文件,持久层文件和pojo层文件的内容:

我是这么写的,禁用了一些方法,只会生成几个简单的基于主键的增删改查。

<table tableName="player_accounts" domainObjectName="PlayerAccounts" enableCountByExample="false" enableUpdateByExample="false"enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"><property name="useActualColumnNames" value="false"/><!-- 数据库表主键 --><generatedKey column="id" sqlStatement="Mysql" identity="true"/>
</table>

而这种方法会按照默认配置来生成持久层,pojo层和映射文件中的方法。

<table tableName="player_accounts"></table>

配置好了之后再点击右边的插件开始创建。

再加上@Repository就可以被当作一个bean,就可以被其他的类@Autowired了。

在启动项类中使用该注解加载mapper,路径改为自己的:

@MapperScan("com.example.mybatis.mapper")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/444524.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一种用于超稳激光的数字控制锁频电路

摘要 超稳激光具有超高的频率稳定度和极窄线宽等优点&#xff0c;广泛应用于各种精密测量物理实验。为了确保不引入额外开关噪声&#xff0c;其频率锁定电路通常采用模拟电路实现&#xff0c;但是模拟控制电路存在锁定参数调节不方便、难以实现自动锁定和远程控制等方面的不足。…

端口冲突的解决方案以及SpringBoot自动检测可用端口demo

端口冲突的解决方案 端口冲突通常发生在尝试运行两个或多个应用程序或服务时&#xff0c;它们尝试使用同一个端口号&#xff0c;导致系统无法正确分配资源。 各种端口错误 你是否遇到过下面这些报错信息呢&#xff1f; Windows 系统报错&#xff1a; 系统错误 1004 套接字操作…

自适应气泡小计

View 代码 <div class"mas-view"><div class"m-2"><span>新新消息消新消息消息新消息新消息新消息新消息新消息新消息新消息新消息新息</span></div></div>CSS 样式 .mas-view{width: 100%;height: auto;border: 1px…

【unity进阶知识9】序列化字典,场景,vector,color,Quaternion

文章目录 前言一、可序列化字典类普通字典简单的使用可序列化字典简单的使用 二、序列化场景三、序列化vector四、序列化color五、序列化旋转Quaternion完结 前言 自定义序列化的主要原因&#xff1a; 可读性&#xff1a;使数据结构更清晰&#xff0c;便于理解和维护。优化 I…

Kubernetes--深入理解Pod资源管理

文章目录 kubectl --helpapi-resourcesapi-versionskubectl explain ... API资源资源规范PodServiceConfigMapSecret 显示资源删除资源详细描述RESTful API Pod资源管理Pod的核心概念Pod资源配置了解Pod运行状况Kubectl get pods xxxxkubectl describe pods xxxkubectl logs -f…

数据分析:锚定手工赛道,小红书爆文内容解析

导语 高倍速增长&#xff0c;近年手工赛道趋势有目共睹&#xff0c;可谓小红书长盛不衰的内容。 相关话题常年位居热门话题榜TOP30&#xff0c;浏览量超百亿&#xff0c;话题下更是诞生了很多大爆文。小编就来带大家探索下&#xff0c;为何小红书“手工”赛道会如此火热&…

高校党费收缴系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;党费收缴管理&#xff0c;论坛信息管理&#xff0c;新闻动态管理&#xff0c;公告管理&#xff0c;基础数据管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;公告&…

Spring Cloud 配置中心详解:微服务动态读取与案例示范

在微服务架构中&#xff0c;每个微服务往往都有其独立的配置&#xff0c;这些配置可能会根据环境的不同&#xff08;开发、测试、生产&#xff09;进行调整和变化。Spring Cloud 配置中心提供了一种集中化管理和动态更新微服务配置的解决方案。在本文中&#xff0c;我们将详细介…

SpringSecurity(三)——自定义优化器

在SpringSecurity中&#xff0c;如果我们在认证或者授权的过程中出现了异常会被ExceptionTranslationFilter捕 获到。在ExceptionTranslationFilter中会去判断是认证失败还是授权失败出现的异常。 一、自定义验证异常类 创建exception包&#xff0c;在exception包下创建自定义…

centos7.9升级rockylinux8.8

前言 查看centos的版本 &#xff0c;我这台服务器是虚拟机,下面都是模拟实验 升级前一定要把服务器上配置文件&#xff0c;数据等进行备份 [rootlocalhost ~]#cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalhost ~]#uname -a Linux jenkins_ser…

爱吃蟠桃的孙悟空

文章目录 1. 题目描述2. 实现3. 整体思路4. 函数定义及参数解释5.二分查找过程6.主函数部分 1. 题目描述 2. 实现 #include <iostream> #include <vector> #include <algorithm>using namespace std;int findMinEatingSpeed(vector<int>& piles, …

selenium:Select类操作复选框和下拉框(7)

复选框/下拉框操作的Select类 主要使用selinium中的类Select来模拟选择网页上的下拉框或者复选框中的内容&#xff0c;使用前先导入 from selenium.webdriver.support.ui import Select 主要方法如下&#xff1a; 函数 功能 select_by_value 根据复选框/下拉框的值选择 se…

【含开题报告+文档+PPT+源码】基于springBoot+vue超市仓库管理系统的设计与实现

开题报告 随着电子商务的快速发展和物流行业的日益壮大&#xff0c;超市仓库管理系统的重要性也日益凸显。传统的超市仓库管理方式存在许多问题&#xff0c;比如人工操作繁琐、数据统计不准确、管理效率低下等。因此&#xff0c;需要设计和实现一个高效、智能的超市仓库管理系…

mig IP核的学习

mig全称是Memory Interface Generator。 参考自视频&#xff1a;MIG IP配置_哔哩哔哩_bilibili DDR基础知识 时钟类型 使用流程 选择DDR3 16是数据线的位宽&#xff0c;能在信号中看出来 这里的clock period 不太明白清楚 文章中怎么选择clock period 靠的是 芯片型号中的…

在培训考试小程序页面弹出半屏的弹窗交互实践

如果在页面内进行复杂的界面设计&#xff08;如在页面内弹出半屏的弹窗、在页面内加载一个全屏的子页面等&#xff09;&#xff0c;用户进行返回操作会直接离开当前页面&#xff0c;不符合用户预期&#xff0c;预期应为关闭当前弹出的组件。 为此提供“假页”容器组件page-con…

JSON 格式化工具:快速便捷地格式化和查看 JSON 数据

JSON 格式化工具&#xff1a;快速便捷地格式化和查看 JSON 数据 为什么需要 JSON 格式化工具&#xff1f; 在日常开发和调试中&#xff0c;JSON 是非常常见的数据交换格式。无论是前端与后端的接口调用&#xff0c;还是数据存储和处理&#xff0c;JSON 格式都扮演着重要角色。…

Windows 安装 MySQL

1. 下载MySQL安装包 访问&#xff1a;MySQL :: Download MySQL Installer选择适合的版本。推荐下载 MySQL Installer for Windows&#xff0c;该安装包包含所有必要的组件选择 Windows (x86, 32-bit), MSI Installer 或 Windows (x86, 64-bit), MSI Installer 2. 运行安装程序…

洛谷P5723、P5728、P1428、P1319 Python解析

P5723 完整代码 def is_prime(y):if y < 2:return Falsefor i in range(2, int(y**0.5) 1):if y % i 0:return Falsereturn Truen int(input()) sum_primes 0 x 0if n < 2:print("0") elif n 2:print("2\n1") else:for i in range(2, n 1):i…

coredump设置

coredump路径查看及设置 coredump路径查看 命令1&#xff1a; cat /proc/sys/kernel/core_pattern 命令2&#xff1a; /sbin/sysctl kernel.core_pattern coredump路径修改 临时修改&#xff1a;echo ‘/var/log/%e.core.%p’ > /proc/sys/kernel/core_pattern 永久修改…

Python网络爬虫从入门到实战

目录 引言 一、网络爬虫的概念 二、 网络爬虫的基本工作流程 &#xff08;一&#xff09;过程&#xff1a; &#xff08;二&#xff09;安装requests模块和beautifulsoup4模块 &#xff08;三&#xff09;requests库的使用 1、requests库的基本介绍 2、导入requests库的…