Java中如何使用MyBatis-Plus操作数据库
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍Java中如何使用MyBatis-Plus操作数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MyBatis-PlusMyBatis-Plus (opens
千家信息网最后更新 2025年01月19日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 ------")); ListuserList = userMapper.selectList(null); userList.forEach(System.out::println); }
测试删除数据
删除姓名等于"张三"的记录
@Autowired private UserMapper userMapper; @Test public void testDelete() { System.out.println(("----- delete method test ------")); LambdaQueryWrapperwrapper = 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 ------")); LambdaQueryWrapperwrapper = 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安全错误
数据库的锁怎样保障安全
中卫租房网络安全
计算机网络技术发展趋势探析
mtk数据库迁移
西门子plc实时数据库
蓝睿网络技术有限公司
科技有限公司 软件开发
乐高无限的所有服务器
2017网络安全会议 强调
数据库怎么移动文件夹里
重庆纯银互联网科技有限公司
服务器一般功率
系统需求分析包括数据库设计
2012服务器安全设置
数据库2010的查询类型
服务器远程开机卡如何看信息
北京网络安全大会央视特约
自然资源三维立体时空数据库运用
安徽信息化软件开发参考价格
没有网络技术人员怎么办
购物网站的数据库设置
web并发修改数据库
金山文档本地部署服务器
学校网络安全之我见
黎明杀机上不去服务器
穿越火线开外挂封服务器怎么办
cnki 网络技术
web开发底层数据库设计
数据库触发器实例免费最新版
违反网络安全管理
软件开发的建议