一、依赖引入
<!-- mybatis‑plus 启动器 -->
<dependency>
<groupid>com.baomidou</groupid>
<artifactid>mybatis-plus-boot-starter</artifactid>
<version>3.5.2</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupid>com.mysql</groupid>
<artifactid>mysql-connector-j</artifactid>
<scope>runtime</scope>
</dependency>
<!--lombok注解依赖-->
<dependency>
<groupid>org.projectlombok</groupid>
<artifactid>lombok</artifactid>
<optional>true</optional>
</dependency>如果你使用的是spring boot 4,依赖调整为
<!-- mybatis‑plus 启动器 -->
<dependency>
<groupid>com.baomidou</groupid>
<artifactid>mybatis-plus-spring-boot4-starter</artifactid>
<version>3.5.17</version>
</dependency>
<!--mysql数据库驱动-->
<dependency>
<groupid>com.mysql</groupid>
<artifactid>mysql-connector-j</artifactid>
<scope>runtime</scope>
</dependency>
<!--lombok注解依赖-->
<dependency>
<groupid>org.projectlombok</groupid>
<artifactid>lombok</artifactid>
<optional>true</optional>
</dependency>编辑器开启lombok 注解处理
1. file(文件)-> settings(设置)-> build, execution, deployment(构建,执行,部署)-> compiler(编译器)-> annotation processors(注解处理器)
2. 勾选 enable annotation processing(启用注解处理)
3. 点击 apply(应用) → ok(确定)
4. 重启 idea,执行:maven → reload all maven projects
二、application.yml配置
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.driver
url: jdbc:mysql://localhost:3306/test_db?useunicode=true&characterencoding=utf-8&servertimezone=asia/shanghai&usessl=false&allowpublickeyretrieval=true
username: root
password: xxxx
mybatis-plus:
# mapper xml文件位置(如果自定义xml才需要)
mapper-locations: classpath:/mapper/**/*.xml
global-config:
db-config:
# 主键策略:自增
id-type: auto
configuration:
### 开启打印sql配置
log-impl: org.apache.ibatis.logging.stdout.stdoutimpl
auto-mapping-behavior: partial
map-underscore-to-camel-case: true下面操作以user表为例,user表中存在字段id,uuid,username,age
三、创建表的实体类
package com.example.demo.model;
import com.baomidou.mybatisplus.annotation.idtype;
import com.baomidou.mybatisplus.annotation.tableid;
import com.baomidou.mybatisplus.annotation.tablename;
import lombok.data;
@data
@tablename("user") //对应数据库表名
public class user {
@tableid(type = idtype.auto)
private long id;
private string uuid;
private string username;
private integer age;
}四、创建表的mapper层(核心,继承basemapper)
package com.example.demo.mapper;
import com.baomidou.mybatisplus.core.mapper.basemapper;
import com.example.demo.model.user;
import org.apache.ibatis.annotations.mapper;
@mapper
public interface usermapper extends basemapper<user> {
}也可以在启动类上加上@mapperscan("com.example.demo.mapper"),就不用每个 mapper 加@mapper
package com.example.demo;
import org.mybatis.spring.annotation.mapperscan;
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
@springbootapplication
@mapperscan("com.example.demo.mapper")
public class demoapplication {
public static void main(string[] args) {
springapplication.run(demoapplication.class, args);
}
}五、创建表格service层(可选)
1.service 接口
package com.example.demo.service;
import com.baomidou.mybatisplus.extension.service.iservice;
import com.example.demo.entity.user;
public interface userservice extends iservice<user> {
}如果使用的是spring boot 4
package com.example.demo.service;
import com.example.demo.model.user;
import java.util.list;
public interface userservice {
list<user> list();
}2.service 实现类
package com.example.demo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.serviceimpl;
import com.example.demo.entity.user;
import com.example.demo.mapper.usermapper;
import com.example.demo.service.userservice;
import org.springframework.stereotype.service;
@service
public class userserviceimpl extends serviceimpl<usermapper, user> implements userservice {
}如果使用的是spring boot 4
package com.example.demo.service.impl;
import com.example.demo.mapper.usermapper;
import com.example.demo.model.user;
import com.example.demo.service.userservice;
import jakarta.annotation.resource;
import org.springframework.stereotype.service;
import java.util.list;
@service
public class userserviceimpl implements userservice {
@resource
private usermapper usermapper;
@override
public list<user> list() {
return usermapper.selectlist(null);
}
}六、操作实例
如下创建一个usercontroller.java进行实例演示
package com.example.demo.controller;
import com.baomidou.mybatisplus.core.conditions.query.lambdaquerywrapper;
import com.example.demo.mapper.usermapper;
import com.example.demo.model.user;
import com.example.demo.service.userservice;
import jakarta.annotation.resource;
import org.springframework.web.bind.annotation.*;
import java.util.list;
import java.util.uuid;
@restcontroller
@requestmapping("/user")
public class usercontroller {
//注入mapper
@resource
private usermapper usermapper;
//注入service
@resource
private userservice userservice;
@getmapping
public list<user> list(){
// 查询user表中的所有数据
return usermapper.selectlist(null);
}
@getmapping("/query")
public list<user> query(@requestparam(required = false) string username, @requestparam(required = false) integer age){
//指定条件
lambdaquerywrapper<user> wrapper = new lambdaquerywrapper<>();
if (username != null) {
wrapper.like(user::getusername, username);
}
if (age != null) {
wrapper.eq(user::getage, age);
}
//排序
wrapper.orderbydesc(user::getid);
//限定条数
wrapper.last("limit 2");
// 查询user中指定数据
return usermapper.selectlist(wrapper);
}
@postmapping("/add")
public string add(@requestbody user data) {
user user = new user();
user.setuuid(uuid.randomuuid().tostring().replace("-", ""));
user.setusername(data.getusername());
user.setage(data.getage());
//mapper插入
int rows = usermapper.insert(user);
//service插入
// userservice.save(user);
return "新增行数" + rows;
}
@getmapping("/{userid}")
public user getuser(@pathvariable long userid)
{
//查询指定主键数据
return usermapper.selectbyid(userid);
}
@postmapping("/update/{userid}")
public string update(@pathvariable long userid, @requestbody user data)
{
user user = new user();
user.setid(userid);
if (data.getusername() != null) {
user.setusername(data.getusername());
}
if (data.getage() != null) {
user.setage(data.getage());
}
int row = usermapper.updatebyid(user);
return "修改行数" + row;
}
@getmapping("delete/{userid}")
public string delete(@pathvariable long userid)
{
int rows = usermapper.deletebyid(userid);
return "删除行数:"+rows;
}
}根据如上实现,运行后现象如下,我这边本地调试使用的端口为:8090
获取用户表中的所有数据:http://127.0.0.1:8090/user

根据指定调整数据数据:http://127.0.0.1:8090/user/query

新增数据:http://127.0.0.1:8090/user/add

根据指定id获取数据:http://127.0.0.1:8090/user/{id}

数据更新:http://127.0.0.1:8090/user/update/{id}

数据删除:http://127.0.0.1:8090/user/delete/{id}

七、basemapper 自带常用方法一览
//插入 int insert(t entity); //根据id删除 int deletebyid(serializable id); //条件删除 int delete(wrapper<t> wrapper); //根据id修改 int updatebyid(t entity); //条件修改 int update(t entity, wrapper<t> wrapper); //根据id查 t selectbyid(serializable id); //查询列表 list<t> selectlist(wrapper<t> querywrapper); //分页 ipage<t> selectpage(ipage<t> page, wrapper<t> querywrapper);
常用条件对照表

以上就是springboot使用mybatis-plus依赖实现数据库操作的实战教学的详细内容,更多关于springboot mybatis-plus操作数据库的资料请关注代码网其它相关文章!
发表评论