• SpringBoot整合Mybatis-Plus


    什么是Mybatis-Plus

    Mybatis-Plus:简称MP,是对MyBatis功能的增强而不是改变。
    Mybatis-Plus的特点:

    • (1)内置通用 Mapper、通用 Service
    • (2)支持主键自动生成
    • (3)内置代码生成器

    SpringBoot对Mybatis-Plus的整合

    在pom.xml文件中导入依赖

    
    			<dependency>
    				<groupId>com.baomidougroupId>
    				<artifactId>mybatis-plus-boot-starterartifactId>
    				<version>3.4.3.1version>
    			dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在application.yml文件中配置Mybatis-Plus

    server:
      port: 8080
      servlet:
        context-path: /springBoot-mybatis-Plus
    
    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        password: "010220"
        username: root
        url: jdbc:mysql://localhost:3306/mvc?useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
      redis:
        host: localhost
        port: 6379
        jedis:
          pool:
            max-idle: 8
            max-wait: -1
            min-idle: 0
            max-active: 8
      mvc:
        pathmatch:
          matching-strategy: ant_path_matcher
      aop:
        proxy-target-class: true
        auto: true
    mybatis-plus:
      #配置实体类路径
      type-aliases-package: com.springbootmybatisplus.demo.dao.entity
      configuration:
        #配置SQL输出语句
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    在实体类中进行注解配置

    MyBatis-Plus注解

    • (1)@TableName:实体类映射的表名
    • (2)@TableId:注明表格的主键,指明主键的生成策略
    • (3)@TableField:注明实体类属性映射的表格字段
      在这里插入图片描述
    package springbootmybatisplus.demo.dao.entity;
    
    import com.baomidou.mybatisplus.annotation.TableField;
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableName;
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    import lombok.ToString;
    
    import java.util.Date;
    
    /**
     * @author Una
     * @date 2022/8/27 12:26
     * @description:
     */
    @ToString
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @TableName(value = "book")//表名
    public class Book {
    
    
        @TableId(value = "book_id")//主键属性
        private Integer bookId;
    
    
        @TableField(value = "book_name")
        private String bookName;
    
        @TableField(value = "book_author")
        private String bookAuthor;
    
    
        @TableField(value = "book_date")
        private Date bookDate;
    
        @TableField(value = "book_price")
        private Integer bookPrice;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    自定义Mapper,继承自BaseMapper<实体类名>

    实现BaseMapper泛型接口,泛型参数是实体类。用户只需要定义自己的Mapper继承自该接口就可以实现单表的CRUD操作

    package springbootmybatisplus.demo.dao.mapper;
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import org.apache.ibatis.annotations.*;
    import springbootmybatisplus.demo.dao.entity.Book;
    
    import java.io.Serializable;
    
    /**
     * @author Una
     * @date 2022/8/27 14:07
     * @description:
     */
    
    @Mapper
    public interface BookMapper extends BaseMapper<Book> {
    
    
        @Insert("insert into book values( #{entity.bookId},#{entity.bookName},#{entity.bookAuthor},#{entity.bookDate},#{entity.bookPrice})")
        @Override
        int insert(Book entity);
    
    
        @Delete("delect from book where book_id=#{id}")
        @Override
        int deleteById(Serializable id);
    
    
        @Update("update book set book_name=#{entity.bookName},book_author=#{entity.bookAuthor},book_date=#{entity.bookDate},book_price=#{entity.bookPrice} where book_id=#{entity.bookId}")
        @Override
        int updateById(Book entity);
    
    
        @Select("select * from book where book_id=#{id}")
        @Override
        Book selectById(Serializable id);
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
  • 相关阅读:
    WordPress实时搜索插件Ajax Search Lite,轻松替代默认搜索功能
    分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
    H743 USBHOST协议栈 CPU占用率高的问题。
    [数据结构与算法]全网最详细的二叉树详解,一文刷遍Leetcode
    Python 封装SNMP调用接口
    高新技术企业申请容易吗?如何提高申报通过的机率?
    堆体扫描点云体积计算实现思路分享
    油猴脚本:bing 搜索结果居中
    独立站FP收款黑科技来啦!再也不用担心账户被封了~
    【电动车优化调度】基于模型预测控制(MPC)的凸优化算法的电动车优化调度(Matlab代码实现)
  • 原文地址:https://blog.csdn.net/m0_50744075/article/details/126556473