Java中如何使用MyBatis-Plus操作数据库
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍Java中如何使用MyBatis-Plus操作数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MyBatis-PlusMyBatis-Plus (opens
千家信息网最后更新 2026年11月02日Java中如何使用MyBatis-Plus操作数据库
这篇文章主要介绍Java中如何使用MyBatis-Plus操作数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
MyBatis-Plus
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
MyBatis可以直接在xml中通过SQL语句操作数据库,很灵活。但其操作都要通过SQL语句进行,就必须写大量的xml文件,很麻烦。mybatis-plus就很好的解决了这个问题。
官网
MyBatis-Plus 官方文档
使用
这里我用的数据库是mysql8,新建test数据库,并创建user表
建表语句
SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0; -- ------------------------------ Table structure for user-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键', `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名', `age` int(0) NULL DEFAULT NULL COMMENT '年龄', `address` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址', PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1;
引入依赖
这里我用的数据库是mysql8
org.springframework.boot spring-boot-starter-parent 2.6.3 org.projectlombok lombok org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-devtools runtime true org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-test junit junit org.springframework spring-test com.baomidou mybatis-plus-boot-starter 3.5.1 com.alibaba druid-spring-boot-starter 1.1.9 mysql mysql-connector-java 8.0.25
分别创建application.yml及application-dev.yml文件
application.yml
# Spring配置spring: # 环境设置 profiles: active: dev # 模板引擎 thymeleaf: mode: HTML encoding: utf-8 # 禁用缓存 cache: false # 服务模块 devtools: restart: # 热部署开关 enabled: true
application-dev.yml
# 开发环境配置server: # 服务器的HTTP端口,默认为80 port: 8081 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver druid: url: jdbc:mysql://localhost:3307/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 123456 initial-size: 5 min-idle: 10 max-active: 20 max-wait: 60000 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: select 'x' test-while-idle: true test-on-borrow: false test-on-return: false pool-prepared-statements: true max-open-prepared-statements: 50 max-pool-prepared-statement-per-connection-size: 20
编写实体类User.java,这里用到lombok
@Datapublic class User { private String id; private String name; private Integer age; private String address;}创建mapper文件夹,并编写 Mapper 类 UserMapper.java
public interface UserMapper extends BaseMapper{ }
在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:
@SpringBootApplication@MapperScan("com.mybatisplus.mapper")public class MainApplication { public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); }}添加测试类,进行功能测试:
测试数据插入数据库
@Autowired private UserMapper userMapper; @Test public void testInsert() { System.out.println(("----- insert method test ------")); User user = new User(); // 自动生成主键,例如550E8400-E29B-11D4-A716-446655440000 String id = UUID.randomUUID().toString(); String replaceAll = id.replaceAll("-", ""); //550E8400E29B11D4A716446655440000 user.setId(replaceAll); user.setName("张三"); user.setAge(21); user.setAddress("北京市海淀区"); int insert = userMapper.insert(user); if(insert>0){ System.out.println("插入成功:"+user); }else{ System.out.println("插入失败!"); } }测试查询所有
@Autowired private UserMapper userMapper; @Test public void testSelect() { System.out.println(("----- selectAll method test ------")); List userList = userMapper.selectList(null); userList.forEach(System.out::println); } 测试删除数据
删除姓名等于"张三"的记录
@Autowired private UserMapper userMapper; @Test public void testDelete() { System.out.println(("----- delete method test ------")); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); User user = new User(); user.setName("张三"); wrapper.eq(User::getName, user.getName()); int delete = userMapper.delete(wrapper); if(delete>0){ System.out.println("删除成功:"+user); }else{ System.out.println("删除失败!"); } } 测试修改数据
修改前先执行下插入
修改还可以用userMapper.updateById(T entity)方法来修改,传入一个实体类
@Autowired private UserMapper userMapper; @Test public void testUpdate() { System.out.println(("----- update method test ------")); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); User user = new User(); user.setName("张三"); wrapper.eq(User::getName, user.getName()); User userNew = new User(); userNew.setName("李四"); int update = userMapper.update(userNew, wrapper); if(update>0){ System.out.println("修改成功:"+user); }else{ System.out.println("修改失败!"); } } 
以上是"Java中如何使用MyBatis-Plus操作数据库"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
数据
数据库
测试
文件
张三
成功
语句
内容
姓名
实体
文件夹
环境
篇文章
开发
服务
配置
价值
兴趣
功能
功能测试
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云南咖啡
互联网科技
科技和互联网公司
以房互联网科技
碳银互联网科技
互联网科技美容
科技伦理 互联网公司
盛创互联网科技有限公司
互联网科技创新企业排名
科技赋能互联网健康
互联网科技中介
互联网科技有哪些公司
东莞新华互联网科技学校
烟台灵鸽互联网科技有限公司
梅州GM互联网络科技有限公司
科技互联网行业投资研究
广州智享互联网科技
科技互联网专业工作会议发言稿
宁波允成互联网科技有限公司
伍佰万互联网科技是干嘛的
互联网是不是新科技
腾讯阿里互联网科技
关于新基建和互联网科技
镁科技互联网资讯平台
互联网科技实习生岗位职责
阿里互联网科技公司
迪庆互联网科技招生
山东子淼互联网科技有限公司
互联网高科技行业有哪些企业
马化腾互联网科技教学