【架构师成长之路】2--0基础搭建单体项目-集成mybatis-plus

2.集成mybatis-plus

引入mybatis-plus所需依赖

 <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

        <!--数据库依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--单元测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>

新建配置文件

# 服务端口
# 服务端口
server:
  port: 8081

# mysql数据库连接
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://121.37.241.78:13306/demo?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8
    username: chase
    password: 123456

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true
    auto-mapping-behavior: full
    #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath*:mapper/*.xml
  global-config:
    # 逻辑删除配置
    db-config:
      logic-delete-field: deleted
      # 删除前
      logic-not-delete-value: 1
      # 删除后
      logic-delete-value: 0
      id-type: auto

在这里插入图片描述
xml文件扫描
在这里插入图片描述
新建xml文件

package com.chase.frame.handler;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @author chase
 * @Desc
 * @date 2022/8/18 16:28
 */
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        paginationInnerInterceptor.setOptimizeJoin(true);
        OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor = new OptimisticLockerInnerInterceptor();
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
        mybatisPlusInterceptor.addInnerInterceptor(optimisticLockerInnerInterceptor);
        return mybatisPlusInterceptor;
    }
        @Override
        public void insertFill(MetaObject metaObject) {
            // 执行插入操作时执行该逻辑
            // 实体类属性名称和要自动填充的值
            this.setFieldValByName("createTime", new Date(), metaObject);
        }

        @Override
        public void updateFill(MetaObject metaObject) {
            // 执行更新操作时执行该逻辑
            this.setFieldValByName("updateTime", new Date(), metaObject);
        }
}

新建mybatis-plus配置类

/**
 * @author chase
 * @Desc
 * @date 2022/8/18 16:26
 */
@RestController
@RequestMapping("/ruleDefineType")
public class RuleDefineTypeController {

    @Autowired
    private RuleDefineTypeMapper ruleDefineTypeMapper;

    @GetMapping("/all")
    public List<RuleDefineType> all() {
        LambdaQueryWrapper<RuleDefineType> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(RuleDefineType::getRemark, "1");
        List<RuleDefineType> ruleDefineTypes = ruleDefineTypeMapper.selectList(queryWrapper);
        return ruleDefineTypes;
    }
}

创建一个controller

/**
 * <p>
 * 规则定义类型表 Mapper 接口
 * </p>
 *
 * @author chase
 * @since 2022-08-18
 */
@Component
public interface RuleDefineTypeMapper extends BaseMapper<RuleDefineType> {

}

创建一个mapper接口

在这里插入图片描述

测试结果,mybatis-puls引入成功 可以进行开发了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值