文章目录
- 数据库的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);}}