Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)

导读:本篇文章讲解 Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题背景

因为mybatis plus非常的流行,虽然平常mybatis generator也够用了,但多会一个,看别人的代码就轻松一点
注意事项:

Mybatis-plus无介绍快使用,CRUD增删改查基本使用附源码(一)

Mybatis-plus无介绍快使用,自定义sql语句CRUD增删改查附源码(二)

Mybatis-plus无介绍快使用,自带封装service层的使用附源码(三)

Mybatis-plus无介绍快使用,注解的使用(四)

Mybatis-plus无介绍快使用,Wrapper条件构造器的使用附源码(五)

Mybatis-plus无介绍快使用,分页插件和乐观锁插件的使用附源码(六)

Mybatis-plus无介绍快使用,枚举变量的使用附源码(七)

Mybatis-plus无介绍快使用,多数据源的使用(八)

Mybatis-plus无介绍快使用,MybatisX自动生成代码插件的使用(九)

Mybatis-plus无介绍快使用,可继承通用的基础实体类(十)

建库建表

1 打开Navicat运行以下SQL脚本进行建库建表

CREATE DATABASE `mybatis_plus` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; 
use `mybatis_plus`; 
CREATE TABLE `user` ( 
    `id` bigint(20) NOT NULL COMMENT '主键ID', 
    `name` varchar(30) DEFAULT NULL COMMENT '姓名', 
    `age` int(11) DEFAULT NULL COMMENT '年龄', 
    `email` varchar(50) DEFAULT NULL COMMENT '邮箱', 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2 插入几条测试数据

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');

Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)

项目创建

1 引入pom依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="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 https://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>2.6.8</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.yg</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mybatis-plus</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <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>-->
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

2 使用IDEA连接数据库
Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)

3 右键user选择Scripted Extensions→Generate POJOs.groovy生成数据库user实体类
Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)
Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)

4 删除set和get,添加@Data注解
Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)

package com.yg.mybatisplus.entity;


import lombok.Data;

@Data
public class User {

  private Long id;
  private String name;
  private Integer age;
  private String email;

}

5 创建mapper接口,集成com.baomidou.mybatisplus.core.mapper.BaseMapper可以使用增删改查方法

package com.yg.mybatisplus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yg.mybatisplus.entity.User;
import org.springframework.stereotype.Repository;

/**
 * @Author suolong
 * @Date 2022/6/2 17:25
 * @Version 2.0
 */
@Repository
public interface UserMapper extends BaseMapper<User> {

}

6 application.yml配置

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://xxx/database?severTimezone=Asia/Shanghai&allowMultiQueries=true&autoReconnect=true&characterEncoding=UTF-8&useUnicode=true&useSSL=false
    username: xxx
    password: 123456

#生成sql日志打印,一般关闭
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

7 启动类

package com.yg.mybatisplus;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@MapperScan("com.yg.mybatisplus.mapper") //扫描所有的mapper
@SpringBootApplication
public class MybatisPlusApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisPlusApplication.class, args);
    }

}

8 测试CRUD增删改查

package com.yg.mybatisplus;

import com.yg.mybatisplus.entity.User;
import com.yg.mybatisplus.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author suolong
 * @Date 2022/6/2 17:42
 * @Version 2.0
 */

@SpringBootTest
public class MybatisPlusTest {

    @Autowired
    UserMapper userMapper;


    @Test
    void selectTest(){
        //全查
        List<User> users = userMapper.selectList(null);
        users.forEach(System.out::println);
    }

    /**
     * 测试插入一条数据
     * MyBatis-Plus在实现插入数据时,会默认基于雪花算法的策略生成id
     */
    @Test
    public void testInsert(){
        User user = new User();
        user.setName("Vz1");
        user.setAge(211);
        user.setEmail("vz@oz61.cn");
        int result = userMapper.insert(user);
        System.out.println(result > 0 ? "添加成功!" : "添加失败!");
        System.out.println("受影响的行数为:" + result);
        //1527206783590903810(当前 id 为雪花算法自动生成的id)
        System.out.println("id自动获取" + user.getId());
    }

    /**
     * 测试根据id删除一条数据
     */
    @Test
    public void testDeleteById(){
        int result = userMapper.deleteById(1533011356262625282L);
        System.out.println(result > 0 ? "删除成功!" : "删除失败!");
        System.out.println("受影响的行数为:" + result);
    }

    /**
     * 测试通过id批量删除数据
     */
    @Test
    public void testDeleteBatchIds(){
        List<Long> ids = Arrays.asList(1532349895093833729L,1533012537454157826L,1533012657583161345L);
        int result = userMapper.deleteBatchIds(ids);
        System.out.println(result > 0 ? "删除成功!" : "删除失败!");
        System.out.println("受影响的行数为:" + result);
    }

    /**
     * 测试根据Map集合中所设置的条件删除数据
     */
    @Test
    public void testDeleteByMap(){
        //当前演示为根据name和age删除数据
        //执行SQL为:DELETE FROM user WHERE name = ? AND age = ?
        Map<String,Object> map = new HashMap<>();
        map.put("name","Vz1 ");
        map.put("age",211);
        int result = userMapper.deleteByMap(map);
        System.out.println(result > 0 ? "删除成功!" : "删除失败!");
        System.out.println("受影响的行数为:" + result);
    }

    /**
     * 测试根据id修改用户信息, 只修改改变的值, 其他信息保持原值
     */
    @Test
    public void testUpdateById(){
        //执行SQL为: UPDATE user SET name=?, age=?, email=? WHERE id=?
        User user = new User();
        user.setId(5L);
        user.setEmail("Vz@sina.com");
        int result = userMapper.updateById(user);
        System.out.println(result > 0 ? "修改成功!" : "修改失败!");
        System.out.println("受影响的行数为:" + result);
    }

    /**
     * 测试根据id查询用户数据
     */
    @Test
    public void testSelectById(){
        User user = userMapper.selectById(1L);
        System.out.println(user);
    }

    /**
     * 根据多个id查询用户数据
     */
    @Test
    public void testSelectBatchIds(){
        //执行SQL为:SELECT id,name,age,email FROM user WHERE id IN ( ? , ? , ? )
        List<Long> ids = Arrays.asList(1L,2L,3L);
        List<User> users = userMapper.selectBatchIds(ids);
        users.forEach(System.out::println);
    }

    /**
     * 根据Map所设置的条件查询用户
     */
    @Test
    public void testSelectByMap(){
        //执行SQL为:SELECT id,name,age,email FROM user WHERE age = ?
        Map<String,Object> map = new HashMap<>();
        map.put("age",18);
        List<User> users = userMapper.selectByMap(map);
        users.forEach(System.out::println);
    }

}

9 项目目录
Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)

总结

快使用就是查看CRUD增删改查怎么用的

作为程序员第 149 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …
Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)Mybatis plus无介绍快使用,CRUD增删改查基本使用附源码(一)

Lyric: 灰狼啃食着水鹿的骨头

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/110726.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!