NO.08 MyBatis创建逆向工程

目录

1、前言

2、添加依赖和插件

 3、创建MyBatis的核心配置文件

 4、创建逆向工程的配置文件

 5、执行MBG插件的generate目标


1、前言

工程的创建有正向工程和逆向工程之分。正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表,如Hibernate是支持正向工程的。 逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源: Java实体类 Mapper接口 Mapper映射文件,如MyBatis支持逆向工程。

本篇以t_minister表、t_dutie表为例,表结构可查看NO.06 自定义映射resultMap_qq_46053741的博客-CSDN博客

2、添加依赖和插件

 在pom.xm文件中添加一下依赖:mysql-connector-java、mybatis-generator-core、junit、log4j,在pom.xml文件中添加build标签,在build标签中添加plugins子标签,plugins标签中主要是添加构建过程中用到的插件;在plugins标签中添加子标签plugin子标签,主要添加创建做成中用到的具体插件,插件主要有以下几个:mybatis-generator-maven-plugin、mybatis-generator-core、mysql-connector-java。

下面是pom.xml配置文件的详细内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.review.mybatis</groupId><artifactId>review_mbg</artifactId><version>1.0-SNAPSHOT</version><name>Archetype - review_mbg</name><url>http://maven.apache.org</url><packaging>jar</packaging><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.37</version></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.0</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies><!-- 控制Maven在构建过程中相关配置 --><build><!-- 构建过程中用到的插件 --><plugins><!-- 具体插件,逆向工程的操作是以构建过程中插件形式出现的 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.0</version><!-- 插件的依赖 --><dependencies><!-- 逆向工程的核心依赖 --><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.0</version></dependency><!-- MySQL驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.37</version></dependency></dependencies></plugin></plugins></build>
</project>

 3、创建MyBatis的核心配置文件

在配置核心配置文件之前需要创建jdbc.properties文件,配置数据库连接信息。

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/review
jdbc.username=root
jdbc.password=123456789

配置文件详细内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--MyBatis核心配置文件中的标签必须要按照指定的顺序配置:properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?--><!--引入properties文件,此后就可以在当前文件中使用的方式访问value--><properties resource="jdbc.properties"/><!--typeAliases:设置类型别名,即为某个具体的类型设置一个别名在MyBatis的范围中,就可以使用别名表示一个具体的类型--><typeAliases><!--type:设置需要起别名的类型alias:设置某个类型的别名--><!--        <typeAlias type="com.review.mybatis.Pojo.User" alias="abc"></typeAlias>--><!--        若不设置alias,当前的类型拥有默认的别名,即类名且不区分大小写--><!--        <typeAlias type="com.review.mybatis.pojo.User"></typeAlias>--><!--通过包设置类型别名,指定包下所有的类型将全部拥有默认的别名,即类名且不区分大小写--><package name="com.review.mybatis.pojo"/></typeAliases><!--    配置连接数据库的环境-->
<!--environments:配置连接数据库的环境属性:default:设置默认使用的环境的id
--><environments default="development"><environment id="development">
<!--transactionManager:设置事务管理器属性:type:设置事务管理的方式type="JDBC|MANAGED"JDBC:表示使用JDBC中原生的事务管理方式MANAGED:被管理,例如Spring
--><transactionManager type="JDBC"/>
<!--dataSource:设置数据源属性:type:设置数据源的类型type="POOLED|UNPOOLED|JNDI"POOLED:表示使用数据库连接池UNPOOLED:表示不使用数据库连接池JNDI:表示使用上下文中的数据源
--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment><environment id="test"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/review"/><property name="username" value="root"/><property name="password" value="123456789"/></dataSource></environment></environments>
<!--    引入mybatis的映射文件-->
<!--以包的方式引入映射文件,但是必须满足两个条件:1、mapper接口和映射文件所在的包必须一致2、mapper接口的名字和映射文件的名字必须一致
--><mappers>
<!--        <mapper resource="mappers/MinisterMapper.xml"/>-->
<!--以包的方式引入映射文件,但是必须满足两个条件:1、mapper接口和映射文件所在的包必须一致2、mapper接口的名字和映射文件的名字必须一致
--><package name="com.review.mybatis.mapper"/></mappers>
</configuration>

 配置文件中typeAliases标签中的package子标签表示以包设置类型别名,指定包下所有的类型将全部拥有默认的别名,即类名且不区分大小写,name属性的value值是实体类包的路径。

mapper标签中的package子标签表示以包的方式引入映射文件,但是必须满足两个条件:1、mapper接口和映射文件所在的包必须一致;2、mapper接口的名字和映射文件的名字必须一致。name属性的value值表示映射文件所在包的路径。

 4、创建逆向工程的配置文件

 逆向工程配置文件名必须为generatorConfig.xml。

配置文件详细内容如下:

<?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><!--
targetRuntime: 执行生成的逆向工程的版本
MyBatis3Simple: 生成基本的CRUD(清新简洁版)
MyBatis3: 生成带条件的CRUD(奢华尊享版)
--><context id="DB2Tables" targetRuntime="MyBatis3"><!-- 数据库的连接信息 --><jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/review"userId="root"password="123456789"></jdbcConnection><!--targetPackage:指定生成targetProject下的路径targetProject:指定生成的位置--><!-- javaBean的生成策略--><javaModelGenerator targetPackage="com.review.mybatis.pojo"targetProject=".\src\main\java"><!--enableSubPackages设置是否能够使用子包,默认值为true,可以将包名中的‘.’解析为一个一个目录;如果为false,则无法解析包名中的‘.’,将带有'.'的包路径看作一个包。--><property name="enableSubPackages" value="true"/><!--trimStrings起截取作用,将表中的字段名前后的空格去除。--><property name="trimStrings" value="true"/></javaModelGenerator><!-- SQL映射文件的生成策略 --><sqlMapGenerator targetPackage="com.review.mybatis.mapper"targetProject=".\src\main\resources"><!--enableSubPackages:设置是否适用子包。--><property name="enableSubPackages" value="true"/></sqlMapGenerator><!-- Mapper接口的生成策略 --><javaClientGenerator type="XMLMAPPER"targetPackage="com.review.mybatis.mapper" targetProject=".\src\main\java"><property name="enableSubPackages" value="true"/></javaClientGenerator><!-- 逆向分析的表 --><!-- tableName:指定需要逆向生成的表tableName设置为*号时,可以对应所有表,此时不写domainObjectName --><!-- domainObjectName:指定生成出来的实体类的类名 --><table tableName="t_minister" domainObjectName="Minister"/><table tableName="t_dutie" domainObjectName="Dutie"/></context>
</generatorConfiguration>

 5、执行MBG插件的generate目标

 配置完generatorConfig文件后,需要执行generate插件生成逆向工程。生成逆向工程过程如下图,在maven仓库中找到当前工程下的mybatis-generator,双击mybatis-generator下的mybatis-generator:generate即可生成。

 

 注意:如果当前工程main目录下只有resource目录,没有java目录,需手动创建java目录。

最终生成逆向工程的结果图:

 

 

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

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

相关文章

Windows上安装Hugo的环境

Hugo是一个使用Go编写的静态站点生成器&#xff0c;即网站构建工具。 静态的意思是指在内容在网站上呈现之前需要全部编译成HTML文件。而动态的站点生成器是请求哪个页面就编译生成哪个HTML页面。 在Windows上可以选用包管理器Chocolatey、Scoop、Winget来安装Hugo。 这里我…

Rancher证书更新

一、环境 主机名 IP地址 操作系统 rancher版本 K8s-Master 192.168.10.236 Centos 7 2.5.9 二、更新证书 1、查看当前证书到期时间 2、进行证书轮换 [rootK8s-Master ~]# docker ps |grep rancher/rancher d581da2b7c4e rancher/rancher:v2.5.9 …

CGAL 点云分类

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 点云分类一直是点云数据应用的永恒课题,它包含很多,如地面点分类、建筑物分类、植被分类等。CGAL中也为我们提供了一种点云分类的方式,其具体的计算过程如下所述: 首先,使用点云中所携带的一些几何特征来对数据…

小梦C嘎嘎——启航篇】C++STL 中 list日常使用的接口介绍

小梦C嘎嘎——启航篇】CSTL 中 list日常使用的接口介绍&#x1f60e; 前言&#x1f64c;什么是list&#xff1f;常用的函数接口无参的构造函数接口拷贝构造接口赋值运算符重载 总结撒花&#x1f49e; &#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&a…

云服务器(Centos7系统)配置JAVA+mysql+tomcat 环境

文章主要内容来源云服务器&#xff08;Centos7系统&#xff09;部署javaweb项目&#xff08;二&#xff09;配置JAVAmysqltomcat 环境_man_zuo的博客-CSDN博客 模仿途中遇到的问题 连接无效 有时连接无法下载&#xff0c;可能是过期了&#xff0c;将其更换为官网给的下载连接即…

WiFi天线和NB-IoT天线不通用

表面看起来完全一样。但是把WiFi天线插到NB-IoT设备后&#xff0c;信号弱了很多。还导致设备反复重启

代码随想录算法训练营之JAVA|第三十三天|738. 单调递增的数字

今天是第33天刷leetcode&#xff0c;立个flag&#xff0c;打卡60天&#xff0c;如果做不到&#xff0c;完成一件评论区点赞最高的挑战。 算法挑战链接 738. 单调递增的数字https://leetcode.cn/problems/monotone-increasing-digits/ 第一想法 题目理解&#xff1a;找到一个…

【Unity细节】Unity制作汽车时,为什么汽车会被弹飞?为什么汽车会一直抖动?

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 &#x1f636;‍&#x1f32b;️收录于专栏&#xff1a;unity细节和bug &#x1f636;‍&#x1f32b;️优质专栏 ⭐【…

MYSQL 统计停车时长百分比

SELECTCOUNT(*) AS 数量,subquery.total_count AS 总数,COUNT(*) * 100 / subquery.total_count AS 百分比,CASEWHEN park_long < 900 THEN 15分钟以内WHEN park_long > 900 AND park_long < 3600 THEN 15-60分钟WHEN park_long > 3600 AND park_long < 10800 T…

只需五分钟,了解kafka的环境搭建

〇、前言 在Kafka系列的上一篇文章中&#xff0c;我们介绍了Kafka的体系结构&#xff0c;那么本篇文章呢&#xff0c;我们就着手来把Kafka的运行环境搭建起来。 此处 &#xff0c;我们采用线上环境普遍使用的ZooKeeper作为管理存储和管理kafka集群元数据&#xff0c;或者辅助…

vue 中 axios 的安装及使用

vue 中 axios 的安装及使用 1. axios 安装2. axios使用 1. axios 安装 首先&#xff0c;打开当前的项目终端&#xff0c;输入 npm install axios --save-dev验证是否安装成功&#xff0c;检查项目根目录下的 package.json,其中的 devDependencies 里面会多出一个axios及其版本…

SpringBoot整合阿里云OSS,实现图片上传

在项目中&#xff0c;将图片等文件资源上传到阿里云的OSS&#xff0c;减少服务器压力。 项目中导入阿里云的SDK <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version>…

ffmpeg合并mp4视频文件

下载ffmpeg Download FFmpeg 2配置环境 右键此电脑-》属性-》高级系统设置 环境变量-》path 解压上面ffmpeg压缩包&#xff0c;找到bin目录&#xff0c;复制完整路径&#xff0c;添加到path环境变量中 测试ffmpeg ffmpeg合并MP4文件 创建一个文本文件&#xff0c;例如inpu…

mybatis入门Idea搭建

一、概念 1、什么是mybatis&#xff1f; MyBatis是一个开源的Java持久层框架&#xff0c;它提供了一种简化数据库访问的方式。它的主要作用是将Java对象与数据库表之间进行映射&#xff0c;使开发者可以通过面向对象的方式操作数据库&#xff0c;而不需要编写大量的SQL语句。M…

vue3 实现按钮权限管理

在做后台管理系统时&#xff0c;经常会有权限管理的功能&#xff0c;这里来记录一下关于按钮权限管理的实现方法 1、自定义指令 v-permission。新建js文件用来写指令代码。 export default function btnPerms(app) {app.directive(permission, {mounted(el, binding) {if (!p…

vscode C++17便捷配置教程(懒人版)

环境链接 以上是已经配置好的c17环境链接&#xff0c;直接下载解压即可 下载解压之后按照msys64-mingw64-bin路径打开 然后单击该路径右方空白区域可直接复制路径 然后点击开始菜单搜索“环境变量“并打开&#xff08;如图&#xff09; 然后点击右下方环境变量 之后双击下方…

低压风机单片机方案

低压风机通常由电机、转子、机壳、进气管、出气管、齿轮和减速机等组成。电机带动转子旋转&#xff0c;旋转的转子带动齿轮和减速机转动&#xff0c;进而形成空气被吸入转子内部&#xff0c;通过旋转而产生的离心力把气体压缩&#xff0c;并将气体排出。 低压风机方案的主控型…

C++11并发与多线程笔记(10) future其他成员函数、shared_future、atomic

C11并发与多线程笔记&#xff08;10&#xff09; future其他成员函数、shared_future、atomic 1、std::future 的成员函数1.1 std::future_status 2、std::shared_future&#xff1a;也是个类模板3、std::atomic原子操作3.1 原子操作概念引出范例&#xff1a;3.2 基本的std::at…

【vue3+ts项目】配置eslint校验代码工具,eslint+prettier+stylelint

1、运行好后自动打开浏览器 package.json中 vite后面加上 --open 2、安装eslint npm i eslint -D3、运行 eslint --init 之后&#xff0c;回答一些问题&#xff0c; 自动创建 .eslintrc 配置文件。 npx eslint --init回答问题如下&#xff1a; 使用eslint仅检查语法&…

解决出海痛点:亚马逊云科技助力智能涂鸦,实现设备互联互通

今年6月&#xff0c;《财富》&#xff08;中文版&#xff09;发布“2023年值得关注的中国出海主力”盘点&#xff0c;在七个赛道中聚焦不断开拓新领域、影响力与日俱增的出海企业。涂鸦智能顺利入选&#xff0c;作为一家全球化公司&#xff0c;相比于产品直接到海外销售的传统出…