当前位置: 首页 > article >正文

Spring Boot3.4.1 集成 mybatis plus

Spring Boot 集成 mybatis plus

第一步 引入依赖
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version>
</dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.10.1</version>
</dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-jsqlparser</artifactId><version>3.5.10.1</version>
</dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.15</version>
</dependency>
第二步 引入配置
spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/boot?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=Asia/Shanghaiusername: rootpassword: 123456
mybatis-plus:mapper-locations: classpath:/mapper/*Mapper.xmlglobal-config:banner: falsedb-config:id-type: ASSIGN_IDconfiguration:map-underscore-to-camel-case: truelog-impl: org.apache.ibatis.logging.stdout.StdOutImplcall-setters-on-nulls: true
第三步 引入配置类
@Configuration
@MapperScan("com.demo.Mapper")
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 配置分页插件interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));// 增加@Version乐观锁支持interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());return interceptor;}
}
第四步 代码编写

实体类

@TableName("t_emp")
public class Emp {@TableId(value = "emp_id")private int empId; // 注意:在Java中通常使用驼峰命名法,因此emp_id变为empId@TableField(value = "emp_name" , exist = true)private String empName;private Integer age;private Character sex;private String email;// 无参构造函数public Emp() {}// 全部参数的构造函数public Emp(int empId, String empName, Integer age, Character sex, String email) {this.empId = empId;this.empName = empName;this.age = age;this.sex = sex;this.email = email;}// Getter和Setter方法public int getEmpId() {return empId;}public void setEmpId(int empId) {this.empId = empId;}public String getEmpName() {return empName;}public void setEmpName(String empName) {this.empName = empName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Character getSex() {return sex;}public void setSex(Character sex) {this.sex = sex;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {String ret = "Emp{" +"empId=" + empId +", empName='" + empName + '\'' +", age=" + age +", sex='" + sex + '\'' +", email='" + email + '\'' +'}';return ret;}
}

编写mapper接口

@Mapper
public interface EmpMapper extends BaseMapper<Emp> {Emp selectEmpById(int empId);List<Emp> selectAllEmp(@RequestParam("dto") Emp emp);@Select("SELECT * FROM  t_emp WHERE 1=1")IPage<Emp> selectEmpPage(IPage<Emp> page);@Select("SELECT * FROM  t_emp WHERE 1=1")List<Emp> selectEmpList(IPage<Emp> page);}

编写mapper的sql映射文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.demo.mapper.EmpMapper"><select id="selectEmpById" resultType="com.demo.entity.Emp">select * from t_emp where emp_id = #{empId}</select><select id="selectAllEmp" resultType="com.demo.entity.Emp">select * from t_emp</select>
</mapper>

编写service类

@Service
public class EmpServiceImpl extends ServiceImpl<EmpMapper, Emp> implements EmpService {private static Logger logger = LoggerFactory.getLogger(EmpServiceImpl.class);public Emp selectEmpById(int empId) {return baseMapper.selectEmpById(empId);}public List<Emp> selectAllEmp(Emp emp) {return baseMapper.selectAllEmp(emp);}public int insertEmp(Emp emp) {return baseMapper.insert(emp);}public Page<Emp> selectEmpPage(Page<Emp> page) {LambdaQueryWrapper <Emp> wrapper = new LambdaQueryWrapper<>();return baseMapper.selectPage(page,wrapper);}@Overridepublic void updateEmp(Emp emp) {baseMapper.updateById(emp);}@Overridepublic void deleteEmp(int empId) {baseMapper.deleteById(empId);}
}
public interface EmpService {Emp selectEmpById(int empId);List<Emp> selectAllEmp(Emp emp);int insertEmp(Emp emp);Page<Emp> selectEmpPage(Page<Emp> page);void updateEmp(Emp emp);void deleteEmp(int empId);
}
第五步 测试
@RestController
@RequestMapping("test")
public class TestController {@Autowiredprivate RedisUtils redisUtils;@Autowiredprivate EmpService empService;@RequestMapping("/hello")public String hello() {redisUtils.set("test1","hello world");System.out.println(redisUtils.get("test1"));List<Emp> emps = empService.selectAllEmp(null);System.out.println(emps);return "hello";}
}
http://www.lryc.cn/news/2399068.html

相关文章:

  • Ubuntu 22.04 上安装 PostgreSQL(使用官方 APT 源)
  • Linux随记(十八)
  • Windows MongoDB C++驱动安装
  • MS1023/MS1224——10MHz 到 80MHz、10:1 LVDS 并串转换器(串化器)/串并转换器(解串器)
  • ESOP股权管理平台完整解决方案
  • 线性调频波形测距测速信号处理——全代码+注释
  • WPS word 已有多级列表序号
  • Vue 3 源码层核心原理剖析(完整详解版)
  • 数据库操作-MySQL-4(JDBC编程)
  • Linux打开.img镜像文件
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(5)
  • 【科研绘图系列】R语言绘制论文组合图形(multiple plots)
  • springMVC-9数据格式化
  • Kafka 和Redis 在系统架构中的位置
  • 【Spring AI】如何实现文生图功能
  • 【ISAQB大纲解读】Kafka消息总线被视为“自下而上设计”?
  • ISBN书号查询接口如何用PHP实现调用?
  • 什么是 Docker Compose 的网络(network),为什么你需要它,它是怎么工作的
  • 嵌入式Linux 期末复习指南(上)
  • SpringBoot3.2新特性:JdbcClient
  • Dify:启动 Web 服务的详细指南
  • 3.1 HarmonyOS NEXT分布式数据管理实战:跨设备同步、端云协同与安全保护
  • Aop + 注解实现数据字典类型转换 EasyExcel导出
  • Python 元组方法全集详解
  • Selenium 中 JavaScript 点击操作的原理及应用
  • Xilinx超过256m bit flash固件跳转失败问题
  • SpringCloud 分布式锁Redisson锁的重入性与看门狗机制 高并发 可重入
  • 02 APP 自动化-Appium 运行原理详解
  • 由docker引入架构简单展开说说技术栈学习之路
  • linux 1.0.5