欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

全面解析2022版Mybatis-plus

最编程 2024-02-02 15:29:49
...

Mybatis-plus学习笔记

1、创建数据库及表

1.1、创建表

CREATE DATABASE `mybatis_plus`;
USE `mybatis_plus`;
CREATE TABLE `user`
(
        `id` BIGINT(20) NOT NULL COMMENT '主键ID',
        `name` VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
        `age` INT(11) NULL DEFAULT NULL COMMENT '年龄',
        `email` VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
        PRIMARY KEY (`id`)
        
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

1.2、添加数据

DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

2、创建Spring Boot工程

2.1、初始化工程

使用Spring Initializr 快速初始化一个Spring Boot 工程

MySQL、lombok、mybatis-plus依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--mybatis-plus启动器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!--mysql驱动器-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--lombok依赖用于简化实体类开发-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

安装lombok插件File——>Settings——>Plugins 搜lombok

2.2、配置application.yml(application.properties)

application.yml

spring:
  # 配置数据源
  datasource:
    # 数据源类型
    type: com.zaxxer.hikari.HikariDataSource
    # 配置连接数据库的各个信息
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT2%B8
    username: root
    password: ****

application.properties

spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=****

3、创建实体类及lombok的简单使用

3.1、创建实体类

@Data
public class User {
    private long id;
    
    private String name;
    
    private Integer age;
    
    private String email;
    
}

3.2、创建mapper接口

@Repository
public interface UserMapper extends BaseMapper<User> {
}

在启动类上添加@MapperScan

@SpringBootApplication
// 扫描mapper所在的包
@MapperScan("com.chen.mapper")
public class MybatisPlusApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatisPlusApplication.class, args);
    }
}

3.3、编写测试类

MybatisPlusTest

@SpringBootTest
public class MybatisPlusTest {
    @Autowired
    private UserMapper userMapper;
    @Test
    public void testSelectList() {
        // 通过条件构造器查询一个list集合,若有条件,则可以设置为null
        List<User> list = userMapper.selectList(null);
        list.forEach(System.out::println);
    }
}

3.4、加入日志功能

在application.yml中加入以下代码

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

运行之后,可以查看生成SQL语句,也可以使用Log4jImpl对日志进行打印

4、BaseMapper

4.1、BaseMapper的添加方法测试

@Test
public void testInsert() {
    // 实现新增用户信息
    // INSERT INTO user ( id, name, age, email ) VALUES ( ?, ?, ?, ? )
    User user = new User();
    user.setName("张三");
    user.setAge(18);
    user.setEmail("zhangsan@atguigu.com");
    int result = userMapper.insert(user);
    System.out.println("result:" + result);
    System.out.println("id:" + user.getId());
}

4.2、BaseMapper的删除方法测试

@Test
public void testDelete() {
    // 通过ID删除一个用户
    // DELETE FROM user WHERE id=?
    /*int result = userMapper.deleteById(1499047219186933761L);
    System.out.println(result);*/
    // 根据map集合中的所设置的条件删除用户信息
    // DELETE FROM user WHERE name = ? AND age = ?
    /*Map<String, Object> map = new HashMap<>();
    map.put("name","张三");
    map.put("age",18);
    int result = userMapper.deleteByMap(map);
    System.out.println(result);*/
    // 通过多个id实现批量删除
    // DELETE FROM user WHERE id IN ( ? , ? )
    List<Long> list = Arrays.asList(1499047368323870722L, 1499047451270430721L);
    int result = userMapper.deleteBatchIds(list);
    System.out.println(result);
}

4.3、BaseMapper的更新方法测试