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

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.xdnf.cn/news/9949.html

相关文章:

  • Spring Boot 中 @RequestParam 和 @RequestPart 的区别详解(含实际项目案例)
  • 【maker-pdf 文档文字识别(包含ocr),安装使用完整教程】
  • 云原生时代 Kafka 深度实践:03进阶特性与最佳实践
  • 【题解-洛谷】P7795 [COCI 2014/2015 #7] PROSJEK
  • Hive在实际应用中,如何选择合适的JOIN优化策略?
  • 探索三维螺旋线的几何奥秘:曲率与挠率的计算与可视化
  • python学习day33
  • SpringBoot WebMvcConfigurer使用Jackson统一序列化格式化输出
  • DDP与FSDP:分布式训练技术全解析
  • python常用库-pandas、Hugging Face的datasets库(大模型之JSONL(JSON Lines))
  • EasyRTC嵌入式音视频通信SDK助力1v1实时音视频通话全场景应用
  • 图解gpt之Transformer架构与设计原理
  • ONNX模型的动态和静态量化
  • 2024 CKA模拟系统制作 | Step-By-Step | 17、题目搭建-排查故障节点
  • 因泰立科技:镭眸T51激光雷达,打造智能门控新生态
  • 立控信息智能装备柜:科技赋能军队装备管理现代化
  • WindowServer2022下docker方式安装dify步骤
  • 大厂前端研发岗位设计的30道Webpack面试题及解析
  • CAD多边形密堆积2D插件
  • SpringBoot+Vue+微信小程序校园自助打印系统
  • Spring Boot 基础知识全面解析:快速构建企业级应用的核心指南
  • 用Git管理你的服务器配置文件与自动化脚本:版本控制、变更追溯、团队协作与安全回滚的运维之道
  • 服务器Docker容器创建与VScode远程连接SSH使用
  • quasar electron mode如何打包无边框桌面应用程序
  • 从零到一:我的技术博客导航(持续更新)
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的企业组织生态化重构研究
  • 展会聚焦丨漫途科技亮相2025西北水务博览会!
  • AI生态警报:MCP协议风险与应对指南(中)——MCP Server运行时安全​​
  • 循环神经网络(RNN)全面教程:从原理到实践
  • 神经网络-Day40