Java中如何使用MyBatis-Plus操作数据库
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要介绍Java中如何使用MyBatis-Plus操作数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MyBatis-PlusMyBatis-Plus (opens
千家信息网最后更新 2025年11月09日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安全错误
数据库的锁怎样保障安全
软件开发走下坡路了吗
软件开发项目转包协议
三级网络技术证书考研复试
高速管理品牌服务器
数据库的四个对象
怎么下载附加数据库
系统集成软件开发+石家庄
概述软件开发过程质量保证活动
国内互联网企业向科技进军
软件开发我都29了能学吗
火山安卓程序数据库
魔法觉醒社团不同服务器
鸿达网络技术
数据库计算机二级考什么
视频服务器支持1078协议
世界有什么知名服务器
网络安全专业可以从事的行业
华三服务器初始管理
华东科技与工业互联网
浙江工业软件开发哪家正规
服务器将系统安装在机械硬盘
数据库收录的数据类型是什么
网络安全危机如何保护隐私
贵州数据网络安全工程介绍
sinomed数据库账号
普惠通互联网科技
找共表达基因用哪个数据库查找
服务器不带显卡
网络技术推动商品交易
瀚高数据库求和函数