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>
本文来自博客园,作者:勤匠,转载请注明原文链接:https://www.cnblogs.com/JarryShu/articles/18359707
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现