Spring Boot Mybatis 搞反向工程,太方便咯。。

沙海
沙海
沙海
1018
文章
2
评论
2021年4月25日01:22:24
评论
1 7874字阅读26分14秒
摘要

速读摘要

速读摘要

欢迎加入我的知识星球,一起探讨架构,交流源码。MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

原文约 3976 | 图片 11 | 建议阅读 8 分钟 | 评价反馈

Spring Boot Mybatis 搞反向工程,太方便咯。。

点击关注 ? Java基基

收录于话题

#Java基基

25个

点击上方“Java基基”,选择“设为星标”

做积极的人,而不是积极废人!

源码精品专栏

 

来源:blog.csdn.net/m0_37922192/

article/details/109248865

大家好,我是基基!

Spring Boot Mybatis 搞反向工程,太方便咯。。

今天来分享一个 MyBattis 提效的神器!

1. 拷贝 Mybatis 反向工程配置文件到项目的根目录下

Spring Boot Mybatis 搞反向工程,太方便咯。。

2. 根据项目及表的情况,修改 GeneratorMapper.xml 配置

  • 如果使用 高版本 , 驱动类变为:com.mysql.cj.jdbc.Driver

  • url 后面应该加属性 nullCatalogMeansCurrent=true ,否则生成有问题

当前版本 MySQL 数据库为 5.7

主要根据注释来修改自己的内容

<?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>    <!-- 指定连接数据库的 JDBC 驱动包所在位置,指定到你本机的完整路径 -->    <classPathEntry location="E:\Java\tool\maven_repository\mysql\mysql-connector-java\5.1.9\mysql-connector-java-5.1.9.jar"/>    <!-- 配置 table 表信息内容体,targetRuntime 指定采用 MyBatis3 的版本 -->    <context id="tables" targetRuntime="MyBatis3">        <!-- 抑制生成注释,由于生成的注释都是英文的,可以不让它生成 -->        <commentGenerator>            <property name="suppressAllComments" value="true"/>        </commentGenerator>        <!-- 配置数据库连接信息 -->        <jdbcConnection driverClass="com.mysql.jdbc.Driver"                        connectionURL="jdbc:mysql://localhost:3306/springboot"                        userId="root"                        password="123456">        </jdbcConnection>        <!-- 生成 model 类,targetPackage 指定 model 类的包名, targetProject 指定        生成的 model 放在 IDEA 的哪个工程下面-->        <javaModelGenerator targetPackage="com.md.springboot.model"                            targetProject="src/main/java">            <property name="enableSubPackages" value="false"/>            <property name="trimStrings" value="false"/>        </javaModelGenerator>        <!-- 生成 MyBatis 的 Mapper.xml 文件,targetPackage 指定 mapper.xml 文件的        包名, targetProject 指定生成的 mapper.xml 放在 IDEA 的哪个工程下面 -->        <sqlMapGenerator targetPackage="com.md.springboot.mapper"                         targetProject="src/main/java">            <property name="enableSubPackages" value="false"/>        </sqlMapGenerator>        <!-- 生成 MyBatis 的 Mapper 接口类文件,targetPackage 指定 Mapper 接口类的包        名, targetProject 指定生成的 Mapper 接口放在 IDEA 的哪个工程下面 -->        <javaClientGenerator type="XMLMAPPER"                             targetPackage="com.md.springboot.mapper" targetProject="src/main/java">            <property name="enableSubPackages" value="false"/>        </javaClientGenerator>        <!-- 数据库表名及对应的 Java 模型类名,有几个表写几个table -->        <table tableName="t_student" domainObjectName="Student"               enableCountByExample="false"               enableUpdateByExample="false"               enableDeleteByExample="false"               enableSelectByExample="false"               selectByExampleQueryId="false"/>    </context></generatorConfiguration>

此时会报错,如下

Spring Boot Mybatis 搞反向工程,太方便咯。。

这个时候可以不用理会,项目也是会正常运行的,当然也可以这样Spring Boot Mybatis 搞反向工程,太方便咯。。

添加之后就不会报红了

3. 在pom.xml 文件中添加 mysql 反向工程依赖

<build>        <plugins>            <!--mybatis 代码自动生成插件-->            <plugin>                <groupId>org.mybatis.generator</groupId>                <artifactId>mybatis-generator-maven-plugin</artifactId>                <version>1.3.6</version>                <configuration>                    <!--配置文件的位置-->                    <configurationFile>GeneratorMapper.xml</configurationFile>                    <verbose>true</verbose>                    <overwrite>true</overwrite>                </configuration>            </plugin>        </plugins>    </build>1234567891011121314151617

4. 双击生成相关文件

Spring Boot Mybatis 搞反向工程,太方便咯。。

5. 生成的文件

自动生成model/Student、实体类

以及StudentMapper,接口

StudentMapper.xml 具体对数据库的操作

这样方便我们使用,具体的下面详细介绍,注意看注释Spring Boot Mybatis 搞反向工程,太方便咯。。

Student

package com.md.springboot.model;public class Student {    private Integer id;    private String name;    private Integer age;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }}

StudentMapper

package com.md.springboot.mapper;import com.md.springboot.model.Student;public interface StudentMapper {    int deleteByPrimaryKey(Integer id);    int insert(Student record);    int insertSelective(Student record);    Student selectByPrimaryKey(Integer id);    int updateByPrimaryKeySelective(Student record);    int updateByPrimaryKey(Student record);}

StudentMapper.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.md.springboot.mapper.StudentMapper">  <!--    数据库字段名称     实体对象属性名称    user_name           userName    user_age            userAge  -->  <!--    如果数据表中的字段是多个单词构成的,通过Mybatis逆向工程生成的对象属性名称    会按照驼峰命名法的规则生成属性名称    自己设计数据表的时候,多个单词之前使用下划线分隔  -->  <!--    resultMap的作用    1. 当数据库中的字段名称和实体类对象的属性名不一致,可以进行转换    2. 当前查询的结果对象没有对应一个表时,可以自定义一个结果集  -->  <resultMap id="BaseResultMap" type="com.md.springboot.model.Student">    <!--      id标签只能修饰主键字段,result标签修饰其他字段      column 数据库中的字段名称      property 映射对象的属性名称      jdbcType 对应的类型    -->    <id column="id" jdbcType="INTEGER" property="id" />    <result column="name" jdbcType="VARCHAR" property="name" />    <result column="age" jdbcType="INTEGER" property="age" />  </resultMap>  <!--sql语句片段,将公共部分抽出-->  <sql id="Base_Column_List">    id, name, age  </sql>  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">    select    <include refid="Base_Column_List" />    from t_student    where id = #{id,jdbcType=INTEGER}  </select>  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">    delete from t_student    where id = #{id,jdbcType=INTEGER}  </delete>  <insert id="insert" parameterType="com.md.springboot.model.Student">    insert into t_student (id, name, age      )    values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}      )  </insert>  <!--动态sql-->  <insert id="insertSelective" parameterType="com.md.springboot.model.Student">    insert into t_student    <trim prefix="(" suffix=")" suffixOverrides=",">      <if test="id != null">        id,      </if>      <if test="name != null">        name,      </if>      <if test="age != null">        age,      </if>    </trim>    <trim prefix="values (" suffix=")" suffixOverrides=",">      <if test="id != null">        #{id,jdbcType=INTEGER},      </if>      <if test="name != null">        #{name,jdbcType=VARCHAR},      </if>      <if test="age != null">        #{age,jdbcType=INTEGER},      </if>    </trim>  </insert>  <update id="updateByPrimaryKeySelective" parameterType="com.md.springboot.model.Student">    update t_student    <set>      <if test="name != null">        name = #{name,jdbcType=VARCHAR},      </if>      <if test="age != null">        age = #{age,jdbcType=INTEGER},      </if>    </set>    where id = #{id,jdbcType=INTEGER}  </update>  <update id="updateByPrimaryKey" parameterType="com.md.springboot.model.Student">    update t_student    set name = #{name,jdbcType=VARCHAR},      age = #{age,jdbcType=INTEGER}    where id = #{id,jdbcType=INTEGER}  </update></mapper>

欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

Spring Boot Mybatis 搞反向工程,太方便咯。。

已在知识星球更新源码解析如下:

Spring Boot Mybatis 搞反向工程,太方便咯。。

Spring Boot Mybatis 搞反向工程,太方便咯。。

Spring Boot Mybatis 搞反向工程,太方便咯。。

Spring Boot Mybatis 搞反向工程,太方便咯。。

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。谢谢支持哟 (*^__^*)

阅读原文

继续阅读
weinxin
资源分享QQ群
本站是一个IT技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: