Springboot整合Mybatis实现级联一对多CRUD操作

在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能。关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Mybatis并完成CRUD操作,这是本文操作的基础。本文先准备一个测试的数据库,然后使用MyBatis Generator进行部分代码自动生成,再以一个例子来展示稍微高级点的操作:使用Mybatis完成级联一对多的CRUD操作。

数据库准备

数据库用到三张表:user表,role表,user_role表。user表用来存储用户的信息;role表用来存储角色信息;user_role表用来将user和role相关联,存储user和role的映射关系,使得一个用户可以有多个角色,每个角色对应其中的一条记录。

新建user表

CREATE TABLE user(
 id INT PRIMARY KEY AUTO_INCREMENT,
 username VARCHAR(20),
 password VARCHAR(20)
)

新建role表并插入数据

CREATE TABLE role(
 id INT PRIMARY KEY AUTO_INCREMENT,
 rolename VARCHAR(20)
)

 

INSERT INTO `role`(`rolename`) VALUES ('后台');
INSERT INTO `role`(`rolename`) VALUES ('前端');
INSERT INTO `role`(`rolename`) VALUES ('客户端');
INSERT INTO `role`(`rolename`) VALUES ('AI');
INSERT INTO `role`(`rolename`) VALUES ('大数据');

结果如图:

Springboot整合Mybatis实现级联一对多CRUD操作

 

新建关联表user_role

CREATE TABLE user_role(
 id INT PRIMARY KEY AUTO_INCREMENT,
 userid INT,
 roleid INT
)

自动生成代码

MyBatis Generator 是MyBatis 官方出品的一款代码生成器,为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。我们可以使用它自动生成MyBatis的 mapper、dao、entity ,省去最简单的重复代码编写。更多详细情况可以查看官网。

1、pom.xml添加依赖

 <!-- MyBatis Generator插件 -->
 <plugin>
 <groupId>org.mybatis.generator</groupId>
 <artifactId>mybatis-generator-maven-plugin</artifactId>
 <version>1.3.7</version>
 <configuration>
 <verbose>true</verbose>
 <overwrite>true</overwrite>
 </configuration>
 <dependencies>
 <dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>8.0.16</version>
 </dependency>
 </dependencies>
 </plugin>

2、在项目根目录下面添加自动生成代码的配置文件generatorConfig.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
 <!--配置文件信息-->
 <properties resource="application.properties"/>
 
 <!--defaultModelType="flat" 大数据字段,不分表 -->
 <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
 <property name="autoDelimitKeywords" value="true" />
 <property name="beginningDelimiter" value="`&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值