mybatis-plus 基础配置

mybatis-plus 基础配置

pom.xml引入

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

application.yml配置

server:
  port: 8080
spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/train
    driver-class-name: com.mysql.cj.jdbc.Driver
  main:
    banner-mode: off
mybatis-plus:
  # mapper.xml文件所在位置
  mapper-locations: classpath:mapper/*.xml
  global-config:
    banner: off # 关闭mybatis banner打印
  # 别名包配置,配置此项后,实体类加@Alias注解
  type-aliases-package: org.train.springboot_train.entity

实体类配置

package org.train.springboot_train.entity;

import com.baomidou.mybatisplus.annotation.IdType;
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 org.apache.ibatis.type.Alias;
import org.train.springboot_train.enums.SEX;

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Alias(value = "consumer")
@TableName(value = "consumer",schema = "train")
public class Consumer {
    @TableId(value = "id",type= IdType.ASSIGN_UUID)
    private String id;

    @TableField(value = "name")
    private String name;

    @TableField(value = "age")
    private Integer age;

    @TableField(value = "sex")
    private SEX sex;

    @TableField(exist = false)
    private List<ConsumerConf> consumerConfs;

    @TableField(exist = false)
    private ConsumerItem consumerItem;
}

@TableName 映射表名

value:表名

schema:所属库(通常不用配置)

@TableId 主键映射

value:主键名

type:主键数据生成模式:UUID、自增ID、雪花算法ID

@TableField 字段映射

value:字段映射名

exist:是否映射表字段

Mapper.java配置

继承com.baomidou.mybatisplus.core.mapper.BaseMapper 接口,接口泛型填实体类

@Mapper
public interface ConsumerMapper extends BaseMapper<Consumer> {
    ...
}

Service 配置

Service 接口配置

继承com.baomidou.mybatisplus.extension.service.IService 接口,接口泛型填实体类

package org.train.springboot_train.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.train.springboot_train.entity.Consumer;

public interface ConsumerService extends IService<Consumer> {
    ...
}

ServiceImpl 实现类配置

  • 继承com.baomidou.mybatisplus.extension.service.impl.ServiceImpl类,类中泛型填Mapper类和实体类

  • 实现自定义接口

package org.train.springboot_train.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.train.springboot_train.entity.Consumer;
import org.train.springboot_train.mapper.ConsumerMapper;

@Service
public class ConsumerServiceImpl extends ServiceImpl<ConsumerMapper, Consumer> implements ConsumerService {
    private ConsumerMapper consumerMapper;
	// 官方推荐使用这种方式注入bean
    @Autowired
    public ConsumerServiceImpl(ConsumerMapper consumerMapper){
        this.consumerMapper = consumerMapper;
    }
}

总结

囊括来说,你需要记住ServiceImpl,IService,BaseMapper分别用在什么地方,表如何映射

附录
mapper.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="">
</mapper>
posted @   勤匠  阅读(27)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示