文章目录 数据库的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应用的入口程序 package com. atguigu ; import org. mybatis. spring. annotation. MapperScan ; import org. springframework. boot. SpringApplication ; import org. springframework. boot. autoconfigure. SpringBootApplication ; @MapperScan ( "com.atguigu.mapper" ) @SpringBootApplication public class Main { public static void main ( String [ ] args) { SpringApplication . run ( Main . class , args) ; } } 实体类User package com. atguigu. pojo ; import lombok. Data ; @Data public class User { private Long id; private String name; private Integer age; private String email; } mapper接口 package com. atguigu. mapper ; import com. atguigu. pojo. User ; import com. baomidou. mybatisplus. core. mapper. BaseMapper ; "继承 mybatis-plus 提供的 基础Mapper接口,自带crud方法" public interface UserMapper extends BaseMapper < User > { } 测试文件 package com. atguigu. test ; import com. atguigu. mapper. UserMapper ; import com. atguigu. pojo. User ; import org. junit. jupiter. api. Test ; import org. springframework. beans. factory. annotation. Autowired ; import org. springframework. boot. test. context. SpringBootTest ; import java. util. ArrayList ; import java. util. HashMap ; import java. util. List ; import java. util. Map ; @SpringBootTest public class SpringBootMybatisPlusTest { @Autowired private UserMapper userMapper; @Test public void test ( ) { List < User > userList= userMapper. selectList ( null ) ; System . out. println ( "userList:" + userList) ; } // 测试 mybatis-plus 的插入 @Test public void testInsert ( ) { User user= new User ( ) ; user. setAge ( 888 ) ; user. setName ( "test-insert" ) ; user. setEmail ( "tets@163.com" ) ; int row= userMapper. insert ( user) ; // mybatis-plus 的自动插入,id是根据雪花算法生成的哦 System . out. println ( "row:" + row) ; } // 测试mybatis-plus 的删除 @Test public void testDelete ( ) { // 根据id删除 int row= userMapper. deleteById ( 2020388575705047042L ) ; System . out. println ( "row:" + row) ; // 根据 age = 20 这个条件 删除 Map param= new HashMap ( ) ; param. put ( "age" , 20 ) ; int i= userMapper. deleteByMap ( param) ; System . out. println ( "i:" + i) ; } /** * TODO mybatis-plus的修改,有一个共同点,就是: * 当,实体的属性值为null,就不会修改,数据库表中对应的字段 */ @Test public void testUpdate ( ) { User user= new User ( ) ; user. setId ( 1L ) ; user. setAge ( 30 ) ; // 相当于执行这一条sql:update user set age = 30 where id = 1 int i= userMapper. updateById ( user) ; System . out. println ( "i:" + i) ; } /** * TODO mybatis-plus的修改,有一个共同点,就是: * 当,实体的属性值为null,就不会修改,数据库表中对应的字段 * * 这里我们实体类 User 的 age 声明为 Integer,而不是 int, * 就是因为,Integer 默认值为null, * int 默认值为0 * * 将所有人的年龄修改为22 */ @Test public void testUpdate1 ( ) { User user= new User ( ) ; user. setAge ( 22 ) ; int rows= userMapper. update ( user, null ) ; // null:没条件 System . out. println ( "rows:" + rows) ; } @Test public void testSelect ( ) { // 根据 id查询 User user= userMapper. selectById ( 1L ) ; System . out. println ( "user= " + user) ; // 根据 id集合查询 List < Long > ids= new ArrayList < > ( ) ; ids. add ( 1L ) ; ids. add ( 2L ) ; ids. add ( 3L ) ; List < User > users= userMapper. selectBatchIds ( ids) ; System . out. println ( "users= " + users) ; } }