• MyBatisPlus学习(1)—— 初始化环境配置 + BaseMapper


    一. 添加依赖

    首先创建springboot工程,然后在pom.xml中添加mybatis-plus相关依赖

    1. <dependency>
    2. <groupId>com.baomidougroupId>
    3. <artifactId>mybatis-plus-boot-starterartifactId>
    4. <version>3.5.1version>
    5. dependency>
    6. <dependency>
    7. <groupId>org.projectlombokgroupId>
    8. <artifactId>lombokartifactId>
    9. <optional>trueoptional>
    10. dependency>
    11. <dependency>
    12. <groupId>mysqlgroupId>
    13. <artifactId>mysql-connector-javaartifactId>
    14. <scope>runtimescope>
    15. dependency>

    二. 连接数据库

    在application.properties中添加以下信息: 

    1. #配置数据源类型
    2. spring.datasource.type=com.zaxxer.hikari.HikariDataSource
    3. #配置连接数据库的信息
    4. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    5. spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
    6. spring.datasource.username=root
    7. spring.datasource.password=123456
    8. #添加日志
    9. mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

    注意:spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus中mybatisplus是数据库名称

    三. 创建实体类对象

    lombok提供了以下注解,可以用于简化实体类对象的开发 

    1. package com.xdu.mybatisplus.pojo;
    2. import lombok.AllArgsConstructor;
    3. import lombok.Getter;
    4. import lombok.NoArgsConstructor;
    5. import lombok.Setter;
    6. @NoArgsConstructor //无参构造
    7. @AllArgsConstructor //有参构造(全部参数)
    8. @Getter //get方法
    9. @Setter //set方法
    10. public class User {
    11. private Integer id;
    12. private String name;
    13. private Integer age;
    14. }

    可以使用一个@Data注解来简化: 

    @Data注解:会给实体类对象添加无参构造器、get和set方法、toString方法  

    1. package com.xdu.mybatisplus.pojo;
    2. import lombok.*;
    3. @Data
    4. public class User {
    5. private Integer id;
    6. private String name;
    7. private Integer age;
    8. }

    四. 创建Mapper接口

    创建Mapper接口来继承BaseMapper

    BaseMapper是SpringBoot自动生成的接口,包含了很多操作数据库的方法

    1. package com.xdu.mybatisplus.mapper;
    2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    3. import com.xdu.mybatisplus.pojo.User;
    4. import org.apache.ibatis.annotations.Mapper;
    5. @Mapper
    6. public interface UserMapper extends BaseMapper {
    7. }

    五. 测试

    1. package com.xdu.mybatisplus;
    2. import com.xdu.mybatisplus.mapper.UserMapper;
    3. import com.xdu.mybatisplus.pojo.User;
    4. import org.junit.jupiter.api.Test;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.boot.test.context.SpringBootTest;
    7. import java.util.List;
    8. @SpringBootTest
    9. public class MyBatisPlusTest {
    10. @Autowired
    11. private UserMapper userMapper;
    12. @Test
    13. public void testSelect(){
    14. //通过条件构造器查询满足条件的用户,若没有条件,则可以设置为null(即查询所有用户)
    15. List list = userMapper.selectList(null);
    16. list.forEach(System.out::println);
    17. }
    18. }

    注意:该方式没有创建mapper接口的映射文件,使用的是BaseMapper中已有的方法

    六. 测试BaseMapper中的方法

    1. 插入

    1. package com.xdu.mybatisplus;
    2. import com.xdu.mybatisplus.mapper.UserMapper;
    3. import com.xdu.mybatisplus.pojo.User;
    4. import org.junit.jupiter.api.Test;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.boot.test.context.SpringBootTest;
    7. @SpringBootTest
    8. public class MyBatisPlusTest {
    9. @Autowired
    10. private UserMapper userMapper;
    11. @Test
    12. public void testInsert(){
    13. User user = new User();
    14. user.setName("Mike");
    15. user.setAge(22);
    16. //INSERT INTO user ( id, name, age ) VALUES ( ?, ?, ? )
    17. int result = userMapper.insert(user);
    18. System.out.println(result);
    19. }
    20. }

    2. 删除

    1. package com.xdu.mybatisplus;
    2. import com.xdu.mybatisplus.mapper.UserMapper;
    3. import org.junit.jupiter.api.Test;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.boot.test.context.SpringBootTest;
    6. import java.util.*;
    7. @SpringBootTest
    8. public class MyBatisPlusTest {
    9. @Autowired
    10. private UserMapper userMapper;
    11. @Test
    12. public void testDelete(){
    13. //通过id删除用户:deleteById
    14. int result1 = userMapper.deleteById(5);
    15. System.out.println(result1);
    16. //通过Map集合中设置的条件来删除用户:deleteByMap
    17. Map map = new HashMap<>();
    18. map.put("name", "Tom");
    19. map.put("age", 22); //删除name=Tom且age=22的用户
    20. int result2 = userMapper.deleteByMap(map);
    21. System.out.println(result2);
    22. //根据id批量删除:deleteBatchIds
    23. List list = new ArrayList<>();
    24. list.add(1);
    25. list.add(2);
    26. int result3 = userMapper.deleteBatchIds(list);
    27. System.out.println(result3);
    28. }
    29. }

    3. 修改

    1. package com.xdu.mybatisplus;
    2. import com.xdu.mybatisplus.mapper.UserMapper;
    3. import com.xdu.mybatisplus.pojo.User;
    4. import org.junit.jupiter.api.Test;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.boot.test.context.SpringBootTest;
    7. @SpringBootTest
    8. public class MyBatisPlusTest {
    9. @Autowired
    10. private UserMapper userMapper;
    11. @Test
    12. public void testUpdate(){
    13. //根据id修改用户信息:updateById
    14. //将id=3的用户的name修改为张三,age修改为24
    15. User user = new User();
    16. user.setId(3);
    17. user.setName("张三");
    18. user.setAge(24);
    19. int result = userMapper.updateById(user);
    20. System.out.println(result);
    21. }
    22. }

    4. 查询

    1. package com.xdu.mybatisplus;
    2. import com.xdu.mybatisplus.mapper.UserMapper;
    3. import com.xdu.mybatisplus.pojo.User;
    4. import org.junit.jupiter.api.Test;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.boot.test.context.SpringBootTest;
    7. import java.util.*;
    8. @SpringBootTest
    9. public class MyBatisPlusTest {
    10. @Autowired
    11. private UserMapper userMapper;
    12. @Test
    13. public void testSelect(){
    14. //根据id查询用户:selectById
    15. User user = userMapper.selectById(1);
    16. System.out.println(user);
    17. //根据id批量查询:selectBatchIds
    18. List list = Arrays.asList(1, 2 ,3);
    19. List userList = userMapper.selectBatchIds(list);
    20. System.out.println(userList);
    21. //根据map集合查询:在map集合中设置查询条件
    22. //查询name=张三且age=24的用户
    23. Map map = new HashMap<>();
    24. map.put("name", "张三");
    25. map.put("age", 24);
    26. List users = userMapper.selectByMap(map);
    27. users.forEach(System.out::println);
    28. //查询所有数据
    29. //通过条件构造器查询满足条件的用户,若没有条件,则可以设置为null(即查询所有用户)
    30. List users1 = userMapper.selectList(null);
    31. users1.forEach(System.out::println);
    32. }
    33. }
  • 相关阅读:
    维度灾难 维数灾难 暂记
    任务调度线程池
    大一新生HTML期末作业 个人网页王嘉尔明星介绍网页设计与制作
    以太坊:“攀登巅峰超越比特币!引领加密货币世界的新时代“
    【Mysql】Centos 7.6安装Mysql8
    轻松实现文件改名:让新文件名与目录名称一致
    【MySQL】表的约束
    git commit 提交信息规范
    云原生Service Mesh服务网格简单介绍
    (整理)蓝屏代码对应原因_蓝屏问题解决方法
  • 原文地址:https://blog.csdn.net/Archer__13/article/details/126932274