1.第一步,maven的pom文件引入mybatis-plus依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
2.在nacos中引入配置文件
# MyBatis Plus配置
mybatis-plus:
# 搜索指定包别名
typeAliasesPackage: com.jing.**.*
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*.xml
# 加载全局的配置文件
#configLocation: classpath:mybatis/mybatis-config.xml
3.config配置
package com.jing.common.core.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* Mybatis Plus 配置
*
* @author ruoyi
*/
@EnableTransactionManagement(proxyTargetClass = true)
@Configuration
public class MybatisPlusConfig
{
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor()
{
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
// 分页插件
interceptor.addInnerInterceptor(paginationInnerInterceptor());
// 乐观锁插件
interceptor.addInnerInterceptor(optimisticLockerInnerInterceptor());
// 阻断插件
interceptor.addInnerInterceptor(blockAttackInnerInterceptor());
return interceptor;
}
/**
* 分页插件,自动识别数据库类型 https://baomidou.com/guide/interceptor-pagination.html
*/
public PaginationInnerInterceptor paginationInnerInterceptor()
{
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
// 设置数据库类型为mysql
paginationInnerInterceptor.setDbType(DbType.MYSQL);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
paginationInnerInterceptor.setMaxLimit(-1L);
return paginationInnerInterceptor;
}
/**
* 乐观锁插件 https://baomidou.com/guide/interceptor-optimistic-locker.html
*/
public OptimisticLockerInnerInterceptor optimisticLockerInnerInterceptor()
{
return new OptimisticLockerInnerInterceptor();
}
/**
* 如果是对全表的删除或更新操作,就会终止该操作 https://baomidou.com/guide/interceptor-block-attack.html
*/
public BlockAttackInnerInterceptor blockAttackInnerInterceptor()
{
return new BlockAttackInnerInterceptor();
}
}
4.实体类
在实体类中需要加上@TableName("t_stu"),与数据库的表名一一对应
5.service继承extends IService<Stu>
@Service
public interface StuService extends IService<Stu> {
}
6.serviceimpl
@Service继承extends ServiceImpl<StuMapper, Stu> implements StuService
public class StuServiceImpl extends ServiceImpl<StuMapper, Stu> implements StuService {
}
7.mapper
@Mapper继承 extends BaseMapper<Stu>
public interface StuMapper extends BaseMapper<Stu> {
}
8.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="com.jing.product.mapper.StuMapper">
</mapper>
9.controller实行增删改查操作
/**
* 查询列表
*/
@ApiOperation(value = "查询列表", notes = "查询列表", httpMethod = "GET")
@GetMapping("/findByStu")
public R<List<Stu>> findByStu(){
return R.ok(stuService.list());
}
/**
* 模糊查询
*/
@ApiOperation(value = "模糊查询", notes = "模糊查询", httpMethod = "GET")
@GetMapping("/findByStuLike")
public R<List<Stu>> findByStuLike(@RequestParam String name){
// 使用 QueryWrapper 构建查询条件
QueryWrapper<Stu> queryWrapper = new QueryWrapper<>();
// 使用 likeRight 实现模糊查询,name%
queryWrapper.likeRight("name", name);
List<Stu> list=stuService.list(queryWrapper);
return R.ok(list);
}
/**
* 添加
*/
@PostMapping("/add")
public R add(@RequestBody Stu stu){
stuService.save(stu);
return R.ok();
}
/**
* 修改
*/
@PutMapping("/update")
public R update(@RequestBody Stu stu){
stuService.updateById(stu);
return R.ok();
}
/**
* 删除
*/
@DeleteMapping("del")
public R del(@RequestParam Integer id){
stuService.removeById(id);
return R.ok();
}