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

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";}
}

相关文章:

  • Linux | Shell脚本的常用命令
  • 2. JavaScript 基础:变量、运算符、分支
  • A类地址中最小网络号(0.x.x.x) 默认路由 / 无效/未指定地址
  • 基于51单片机的音乐盒键盘演奏proteus仿真
  • 安全帽目标检测
  • 【前端优化】使用speed-measure-webpack-plugin分析前端运行、打包耗时,优化项目
  • PyCharm接入DeepSeek,实现高效AI编程
  • 【深度剖析】流处理系统性能优化:解决维表JOIN、数据倾斜与数据膨胀问题
  • 响应式原理
  • LearnOpenGL-笔记-其十
  • linux 中路由解决方案1
  • YC-8002型综合变配电监控自动化系统
  • 数据结构与算法之中缀表达式的求值
  • mysql隐式转换会造成索引失效的原因
  • 外包项目交付后还能怎么加固?我用 Ipa Guard 给 iOS IPA 增加了一层保障
  • 【appium】环境安装部署问题记录
  • IDEA修改JVM内存配置以后,无法启动
  • JVM内存模型(运行时数据区)
  • 力扣面试150题--二叉树的层平均值
  • CppCon 2014 学习:HOW UBISOFT MONTREAL DEVELOPS GAMES FOR MULTICORE
  • 网站布局 种类/腾讯会议价格
  • dreameaver注册用户网站怎么做/深圳百度推广seo公司
  • 宝安中心站/百度惠生活商家入驻
  • 视频源网站怎么做/全国疫情防控最新数据
  • 惠阳做网站/无屏蔽搜索引擎
  • ps 做ui比较好的网站有哪些/产品推广运营方案