(学习笔记)Mybatis Plus初步

发布时间:2024年01月11日

使用Mybatis Plus

一、项目创建(spring boot形式)

第一次使用Mybatis Plus时,首先需要在你的maven类的pom.xml文件中引入mybatis plus的坐标依赖。

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>x.x.x</version>
</dependency>

使用idea创建maven/springboot教程如下(在有网络的环境下创建):

1.新建springboot工程

1.打开idea工具,选择新建项目(如果选不了Java11或者8,请将图中url修改为阿里云镜像:https://start.aliyun.com/)
这里项目名“study_mybatis_plus”取的不规范,大家可以规范一下
创建spring boot项目

2.选择所需依赖

2.可以暂时啥都不选:
不选择所需依赖

3.加载项目依赖

3.进入项目:
项目结构大致如图所示在这里插入图片描述

4.项目初始结构展示

4.展开src里面的目录结构如下图所示:
在这里插入图片描述

5.pom文件展示

5.点击pom.xml文件,内容如下如图所示:在这里插入图片描述

6.导入所需依赖

6.导入所需要的依赖(这里以MySQL为例,导入MySQL的驱动、mybatis-plus依赖、lombook依赖(2023前的旧版idea需要手动去插件商店下载Lombok的插件,不会的自己百度一下idea怎么下载lombok插件,这里不再赘述!))
在这里插入图片描述

pom.xml中的dependencies依赖源码(复制替换即可):

 <dependencies>

        <!--spring boot 的启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <!--spring boot 的测试功能启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--导入MySQL的驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!--导入mybatis-plusd的驱动-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <!--导入lombok的驱动-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

    </dependencies>

7.通过maven下载依赖

7.刷新maven下载所需依赖,至此,初步的项目创建已经完成!
在这里插入图片描述

这里包名“study_mybatis_plus”取的不规范,大家可以规范一下,博主下面已经进行重构》重命名,然后在磁盘里找到项目,将文件夹进行重新命名即可

在这里插入图片描述

二、项目配置

1.检查项目结构

1.先检查有没有resource文件夹,没有的进行如下操作(有的话,进入步骤2):
在这里插入图片描述
选中main文件,鼠标右键,选择新建:
在这里插入图片描述
选择resource文件样例并双击:
在这里插入图片描述
此时项目结构变成:
在这里插入图片描述
选中resource文件夹,右键新建文件(application.properties或者application.yml其一即可):
在这里插入图片描述

2.进行项目配置文件编写

2.在项目的properties(通过点进行分隔)文件或者yml(通过冒号进行分隔)文件中进行相关配置:
在这里插入图片描述

这里采用yml文件作为演示(便于观看)

spring:
  # 配置数据源信息
  datasource:
    # 配置数据源类型
    type: com.zaxxer.hikari.HikariDataSource
    # 配置链接数据库的各个信息
    # mysql5.7版本使用:com.mysql.jdbc.Driver      mysql8版本使用:com.mysql.cj.jdbc.Driver
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql:mystudy?userSSL=false&characterEncoding=utf-8&serverTimezone=GMT%2B8
    username: 你的账号
    password: 你的密码

至此,项目配置完结,接来下开始进入编写代码环节

三、项目编写

1.创建实体类

1.首先基于你表中的数据创建相关联的实体类,创建pojo包,新建对象(对象命名首字母大写,其余和数据库中的表名保持一致)
这里大家可以下载一些插件(如MybatisX),在idea中连接数据库,用于快速生成表对应的实体类和映射文件
在这里插入图片描述

2.创建mapper

2.创建mapper包下面的UserMapper接口文件
在这里插入图片描述
此时还需要在启动类中添加一个mapper的路径扫描注解
在这里插入图片描述
至此,基本的基于数据库单表的CRUD方法已经有了,只需要使用UserMapper的对象的各种方法就可以完成对于数据库中单表的各种增删改查操作了;
此时可以通过编写测试类来测试基本功能是否可以用了:
在这里插入图片描述

3.编写service

3.进一步提升CRUD的能力,创建service包下面的UserService接口以及其实现类
创建UserService接口并继承于IService < User >:在这里插入图片描述
在这里插入图片描述

4.主键自增类型介绍

mybatis的主键默认策略是雪花算法计算,如果需要改成自动递增,则需要进行以下配置
1.保证你的数据库中的主键也是自增的
2-1.可以在实体类的注解中进行主键生成策略的配置(选其中一种即可):

    /**
     * 主键
     */
    //设置ID自增,而不采用雪花算法,前提是数据库中也设置了自增,不影响雪花算法
    @TableId(value = "id",type = IdType.AUTO)
    private Long id;

在这里插入图片描述

2-2.可以在配置文件中进行全局配置,这样其他表的主键生成策略也进行了更改(选其中一种即可):

# 配置mybatis plus日志显示功能
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  # 设置mybatis plus的全局配置
  global-config:
    db-config:
      # 设置统一的主键生成策略
      id-type: auto
      # 设置实体类所对应的表的统一前缀
      # table-prefix: t_

5.编写wrappers实现类

wrapper子类介绍:
1.QueryWrapper:查询条件封装
2.UpdateWrapper:update条件封装
3.LambdaQueryWrapper:用于Lambda语法使用的查询Wrapper
4.LambdaUpdateWrapper:Lambda更新封装Wrapper
在这里插入图片描述

通过wrapper,我们可以轻松实现一些复杂的SQL;

四、学习完结

mybatis-plus的学习之路就先告一段落啦,毕业完的一年里面一直在忙于工作,就没有时间来记录一些知识点了,之后有时间会慢慢补上的。

文章来源:https://blog.csdn.net/weixin_44376552/article/details/135400697
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。