news 2026/8/29 6:44:01

mybatis-plus 快速体验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
mybatis-plus 快速体验

文章目录

    • 数据库的user表
    • 目录结构
    • pom.xml 依赖
    • application.yml 配置文件
    • springboot应用的入口程序
    • 实体类User
    • mapper接口
    • 测试文件

数据库的user表

目录结构

pom.xml 依赖

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version></parent><groupId>com.atguigu</groupId><artifactId>mybatis-plus-quick</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- 测试环境 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!-- mybatis-plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency><!-- 数据库相关配置启动器 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- druid启动器的依赖 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>1.2.20</version></dependency><!-- 驱动类--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version></dependency></dependencies><!-- SpringBoot应用打包插件 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

application.yml 配置文件

# 连接池配置spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedruid:url:jdbc:mysql:///mybatis-exampleusername:rootpassword:rootdriver-class-name:com.mysql.cj.jdbc.Drivermybatis-plus:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImpl# 控制台输出sql语句

springboot应用的入口程序

packagecom.atguigu;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@MapperScan("com.atguigu.mapper")@SpringBootApplicationpublicclassMain{publicstaticvoidmain(String[]args){SpringApplication.run(Main.class,args);}}

实体类User

packagecom.atguigu.pojo;importlombok.Data;@DatapublicclassUser{privateLongid;privateStringname;privateIntegerage;privateStringemail;}

mapper接口

packagecom.atguigu.mapper;importcom.atguigu.pojo.User;importcom.baomidou.mybatisplus.core.mapper.BaseMapper;"继承 mybatis-plus 提供的 基础Mapper接口,自带crud方法"publicinterfaceUserMapperextendsBaseMapper<User>{}

测试文件

packagecom.atguigu.test;importcom.atguigu.mapper.UserMapper;importcom.atguigu.pojo.User;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;@SpringBootTestpublicclassSpringBootMybatisPlusTest{@AutowiredprivateUserMapperuserMapper;@Testpublicvoidtest(){List<User>userList=userMapper.selectList(null);System.out.println("userList:"+userList);}// 测试 mybatis-plus 的插入@TestpublicvoidtestInsert(){Useruser=newUser();user.setAge(888);user.setName("test-insert");user.setEmail("tets@163.com");introw=userMapper.insert(user);// mybatis-plus 的自动插入,id是根据雪花算法生成的哦System.out.println("row:"+row);}// 测试mybatis-plus 的删除@TestpublicvoidtestDelete(){// 根据id删除introw=userMapper.deleteById(2020388575705047042L);System.out.println("row:"+row);// 根据 age = 20 这个条件 删除Mapparam=newHashMap();param.put("age",20);inti=userMapper.deleteByMap(param);System.out.println("i:"+i);}/** * TODO mybatis-plus的修改,有一个共同点,就是: * 当,实体的属性值为null,就不会修改,数据库表中对应的字段 */@TestpublicvoidtestUpdate(){Useruser=newUser();user.setId(1L);user.setAge(30);// 相当于执行这一条sql:update user set age = 30 where id = 1inti=userMapper.updateById(user);System.out.println("i:"+i);}/** * TODO mybatis-plus的修改,有一个共同点,就是: * 当,实体的属性值为null,就不会修改,数据库表中对应的字段 * * 这里我们实体类 User 的 age 声明为 Integer,而不是 int, * 就是因为,Integer 默认值为null, * int 默认值为0 * * 将所有人的年龄修改为22 */@TestpublicvoidtestUpdate1(){Useruser=newUser();user.setAge(22);introws=userMapper.update(user,null);// null:没条件System.out.println("rows:"+rows);}@TestpublicvoidtestSelect(){// 根据 id查询Useruser=userMapper.selectById(1L);System.out.println("user= "+user);// 根据 id集合查询List<Long>ids=newArrayList<>();ids.add(1L);ids.add(2L);ids.add(3L);List<User>users=userMapper.selectBatchIds(ids);System.out.println("users= "+users);}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 22:21:45

Transformer架构深度解析

🧠 Transformer架构深度解析:从“注意力”到“理解”的革命 Transformer架构是人工智能领域近十年来最具颠覆性的创新之一,它不仅是GPT、BERT等大语言模型的基石,更是推动了自然语言处理乃至整个深度学习范式的变革。其核心思想完全抛弃了传统的循环(RNN)和卷积(CNN)…

作者头像 李华
网站建设 2026/8/21 20:27:16

最近在折腾C#和欧姆龙PLC通信,发现网上完整的HostLink协议实现案例不多,自己啃手册写了套基础通信框架。直接上干货,先扔个读取DM区的代码

C#上位机与omron欧姆龙 Host Link通信串口通讯实例 源码 通过和PLC用串口连接&#xff0c;可以读取写入欧姆龙PLC的数据寄存器DM&#xff08;批量也可以&#xff09;、输入输出CIO、辅助继电器WR,H保持继电器等。 c#基于VS2015以上版本 // 串口配置 SerialPort sp new Serial…

作者头像 李华
网站建设 2026/8/21 20:27:15

使用Nginx搭配GeoIP2实现根据IP自动跳转国家站点

前言 在现代Web应用中&#xff0c;根据用户的地理位置提供不同的内容是一种常见的需求。本文将详细介绍如何使用Nginx和GeoIP2模块实现按国家或地区的智能路由的功能&#xff0c;我们可以实现更加精准的内容分发、个性化的用户体验和合规化的服务策略。 这里只实现了根据国家或…

作者头像 李华
网站建设 2026/8/26 6:39:32

JAVA核心技术实战

一、为什么这些 “老技术” 至今仍是面试 / 开发的核心&#xff1f;​ Java 生态迭代迅速&#xff0c;但真正支撑企业级项目稳定运行的&#xff0c;始终是那些 “不变的核心”—— 它们不依赖最新 JDK 版本&#xff0c;却贯穿所有 Java 开发场景&#xff0c;也是大厂面试的 “…

作者头像 李华
网站建设 2026/8/22 7:07:47

基于车速的变预测时域的MPC自适应轨迹跟踪控制,能够预测时域的, 类似驾驶员模型中的预瞄距离...

基于车速的变预测时域的MPC自适应轨迹跟踪控制&#xff0c;能够预测时域的, 类似驾驶员模型中的预瞄距离&#xff0c;在不同的车速下&#xff0c;预瞄控制器采用不同预瞄距离产生的控制效果不同&#xff0c;通过carsim与simulink联合仿真结果发现&#xff0c;改进后的轨迹跟踪控…

作者头像 李华
网站建设 2026/8/21 20:27:20

基于python的海鱼类科普网站的 海洋生物知识科普系统

目录系统概述核心功能模块技术实现要点部署与维护开发技术路线结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;系统概述 一个基于Python的海鱼类科普网站旨在通过交互式平台向公众普及海洋生物知识&#xff0c;整合图文、视频、数据库…

作者头像 李华