在Spring Boot中使用Mybatis-plus

在疯狂学习的路上,今天来学习Mybatis-plus。

Mybatis-plus国产的开源框架,基于Mybatis,核心功能就是简化Mybatis的开发,提高开发效率。

  1. pom.xml中引入mybatis-plus的依赖
        <!-- 引入mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
  1. application.yml配置文件中配置连接数据库、打印SQL语句等。然后在启动类需要添加@MapperScan(“mapper所在的包”),否则无法加载 Mppaer bean。
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/userdb?useUnicode=true&characterEncoding=utf8
    username: root
    password: 123456
server:
  port: 8080
#打印SQL语句
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  1. 操作数据库只需要在Mapper接口中继承BaseMapper即可,User为要操作的实体

4. 常用注解
@TableName(value = “t_user”),在实体类上添加这个注解,表示与数据库表对应的名字

@TableId(value = “id”,type = IdType.NONE),指定实体属性的对应数据库表的主键,type表示主键的生成方式,其中

描述
AUTO数据库自增
NONEMybatis-plus 给你设置主键,雪花算法实现(默认的方式)
INPUT需要开发者手动赋值
ASSIGN_IDMybatis-plus 分配 ID,类型可以为Long、Integer、String,
ASSIGN_UUID分配 UUID,类型为Strinig

@TableField 映射非主键字段,value 映射字段名
exist 表示是否为数据库字段 false,如果实体类中的成员变量在数据库中没有对应的字段,则可以使用exist,VO、DTO
select 表示是否查询该字段

@TableField(select = false) 为不查询此属性

@TableField(fill = FieldFill.INSERT) fill 表示是否自动填充,将对象存进数据库的时候,由
MyBatis Plus 自动给某些字段赋值,create_time、update_time

fill属性需要创建自动填充处理器

package com.hierway.user.handel;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @Program user
 * @Description 处理插入更新时间Handle
 * @PackageName com.hierway.user.handel
 * @Author LiuJunbao
 * @Date 2021-04-0917:27
 */
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        // createTime、updateTime为需要自动创建的属性名称
        this.setFieldValByName("createTime", new Date(), metaObject);
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", new Date(), metaObject);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值