弹簧引导整合Mybatis实现级联一对多CRUD操作的完整步骤

  

  

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

  

  

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

  

<强>新用户建表

        创建表的用户(   id AUTO_INCREMENT INT主键,   用户名VARCHAR (20),   密码VARCHAR (20)   )      

新建角色表并插入数据

        创建表的作用(   id AUTO_INCREMENT INT主键,   rolename VARCHAR (20)   )            插入“角色”(rolename)值(“后台”);   插入“角色”(rolename)值(“前端”);   插入“角色”(rolename)值(“客户端”);   插入“角色”(rolename)值(“人工智能”);   插入“角色”(rolename)值(“大数据的);      

结果如图:

  

春天引导整合Mybatis实现级联一对多CRUD操作的完整步骤

  

新建关联表user_role

        创建表user_role (   id AUTO_INCREMENT INT主键,   userid INT,   roleid INT   )      

  

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

  

1, pom.xml添加依赖

        & lt; !——MyBatis发电机插件——比;   & lt; plugin>   & lt; groupId> org.mybatis.generator   & lt; artifactId> mybatis-generator-maven-plugin   & lt; version> 1.3.7   & lt; configuration>   & lt; verbose> true   & lt; overwrite> true   & lt;/configuration>   & lt; dependencies>   & lt; dependency>   & lt; groupId> mysql   & lt; artifactId> mysql-connector-java   & lt; version> 8.0.16   & lt;/dependency>   & lt;/dependencies>   & lt;/plugin>      

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

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; !DOCTYPE generatorConfiguration   公共”——//mybatis.org//DTD MyBatis发电机配置1.0//EN”   “http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd”在   & lt; generatorConfiguration>   & lt; !——配置文件信息——比;   & lt;属性资源=" application.properties "/比;      & lt; !——defaultModelType=捌健贝笫葑侄?不分表——比;   & lt;上下文id=癕ysql”targetRuntime=癕yBatis3Simple defaultModelType”=捌健北?   & lt;属性名=" autoDelimitKeywords " value=" https://www.yisu.com/zixun/true "/比;   & lt;属性名=" beginningDelimiter " value=" https://www.yisu.com/zixun/"/比;   & lt;属性名=" endingDelimiter " value=" https://www.yisu.com/zixun/"/比;   & lt;属性名=" javaFileEncoding " value=" https://www.yisu.com/zixun/utf-8 "/比;   & lt;插件类型=皁rg.mybatis.generator.plugins。SerializablePlugin”/比;      & lt;插件类型=皁rg.mybatis.generator.plugins。ToStringPlugin”/比;      & lt; !——注释——比;   & lt; commentGenerator比;   & lt;属性名=" suppressAllComments " value=" https://www.yisu.com/zixun/true "/祝辞& lt; !——是否取消注释——比;   & lt;属性名=" suppressDate " value=" https://www.yisu.com/zixun/true "/比;& lt; !——是否生成注释代时间戳——比;   & lt;/commentGenerator>      & lt; !——数据库链接——比;   & lt; jdbcConnection driverClass=" $ {spring.datasource.driverClassName}”   connectionURL=" $ {spring.datasource.url}”   用户id=" $ {spring.datasource.username}”   密码=" $ {spring.datasource.password} "比;   & lt;/jdbcConnection>      & lt; !——类型转换——比;   & lt; javaTypeResolver>   & lt; !——是否使用bigDecimal,假可自动转化以下类型(长,整数,短等)——比;   & lt;属性名=" forceBigDecimals " value=" https://www.yisu.com/zixun/false "/比;   & lt;/javaTypeResolver>      & lt; !——生成模型类存放位置——比;   & lt; javaModelGenerator targetPackage=" com.shangguan.mybatis1。实体”targetProject=" src/main/java”比;   & lt;属性名=" enableSubPackages " value=" https://www.yisu.com/zixun/true "/比;   & lt;属性名=" trimStrings " value=" https://www.yisu.com/zixun/true "/比;   & lt;/javaModelGenerator>      & lt; sqlMapGenerator targetPackage=" mapper " targetProject=皊rc/main/资源”比;   & lt;属性名=" enableSubPackages " value=" https://www.yisu.com/zixun/false "/比;   & lt;/sqlMapGenerator>      & lt; javaClientGenerator targetPackage=" com.shangguan.mybatis1。道”targetProject=" src/main/java XMLMAPPER“type=比;   & lt;属性名=" enableSubPackages " value=" https://www.yisu.com/zixun/false "/比;   & lt;/javaClientGenerator>      & lt; !——数据库表的信息——比;   & lt;表的表="用户" enableCountByExample=" true " enableUpdateByExample=" true " enableDeleteByExample=" true " enableSelectByExample=" true " selectByExampleQueryId=" true "比;   & lt; generatedKey列=" id " sqlStatement==" true "/癕ysql”身份比;   & lt;/table>      & lt;表的表="角色" enableCountByExample=" true " enableUpdateByExample=" true " enableDeleteByExample=" true " enableSelectByExample=" true " selectByExampleQueryId=" true "比;   & lt; generatedKey列=" id " sqlStatement==" true "/癕ysql”身份比;   & lt;/table>      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

弹簧引导整合Mybatis实现级联一对多CRUD操作的完整步骤