首页 > 编程语言 >Java Spring Boot Mybatis-Plus 的简单使用

Java Spring Boot Mybatis-Plus 的简单使用

时间:2023-12-28 23:24:02浏览次数:28  
标签:Java Spring Boot --- baomidou println import com public

此文主要基于官网 case 整理,如需了解更多详情,请移步官网。

环境:

  • SpringBoot:3.1.6
  • JDK:17
  • MySQL:5.7

数据准备

主要是 MySQL 建库建表,插入一些数据。

建库:

CREATE DATABASE mybatis_demo;

建表:

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user`
(
    id BIGINT NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (id)
);

插入数据:

DELETE FROM `user`;

INSERT INTO `user` (id, name, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]');

依赖

此处添加依赖请多注意,注意点:

  • 1.mysql的驱动,现在新版的普遍用依赖中的 mysql-connector-j
  • 2.mybatis-plus,mybatis-plus-boot-starter -> mybatis-plus-spring-boot3-starter[1]
<!--  mysql driver      -->
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.1.0</version>
</dependency>
<!-- mp依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.5</version>
</dependency>
<!--   @Data     -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.30</version>
</dependency>

application.yaml

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: root
    url: jdbc:mysql://{ip}:3306/mybatis_demo?&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true

先启动看看有没有什么问题:

image.png

启动正常。

接下来是相关编码实现,这是我的代码目录:

主要实现

image.png

主目录下新建 entity 实体类目录,新建 User.java:

package com.example.springbootmybatisplusdemo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;


@Data
@TableName(value = "user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;

    private String name;
    private Integer age;
    private String email;
}

在项目主目录下建个 mapper 目录,放置 mapper 接口,新建 UserMapper.java:

package com.example.springbootmybatisplusdemo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.springbootmybatisplusdemo.entity.User;

public interface UserMapper extends BaseMapper<User> {
}

主要继承接口,没有另外新声明方法。

项目启动入口处加入 MapperScan:

package com.example.springbootmybatisplusdemo;

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

@SpringBootApplication
@MapperScan(basePackages = "com.example.springbootmybatisplusdemo.mapper")
public class SpringbootMybatisPlusDemoApplication {

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

}

可以重启下看看。

接下来主要是基于上面的内容进行测试。

测试

在 test 下新建 SampleTest.java:

package com.example.springbootmybatisplusdemo.test;

import com.example.springbootmybatisplusdemo.mapper.UserMapper;
import com.example.springbootmybatisplusdemo.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.util.Assert;

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

@SpringBootTest
public class SampleTest {
    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelect() {
        System.out.println("---selectAll method test---");
        List<User> userList = userMapper.selectList(null);
        Assert.isTrue(5 == userList.size());
        userList.forEach(System.out::println);
    }

    @Test
    public void testSelectById() {
        System.out.println("--- select by id ---");
        User user = userMapper.selectById(1);
        System.out.println(user.toString());
    }

    @Test
    public void testSelectByCond() {
        System.out.println("--- select by specific condition ---");
        Map<String, Object> cond = new HashMap<>();
        cond.put("name", "Sandy");
        List<User> userList = userMapper.selectByMap(cond);
        System.out.println(userList.toString());
    }

    @Test
    public void testInsert() {
        System.out.println("--- insert test ---");
        User newUser = new User();
        newUser.setId(6L);
        newUser.setName("Jordan");
        newUser.setAge(56);
        newUser.setEmail("[email protected]");
        userMapper.insert(newUser);
    }

    @Test
    public void testDeleteByMap() {
        System.out.println("--- delete test ---");
        Map<String, Object> map = new HashMap<>();
        map.put("name", "Jordan");
        int res = userMapper.deleteByMap(map);
        System.out.println("result: " + res);
    }


}

运行测试。

上面的就是一个简单的运用,通过 mybatis-plus,我们通过继承 BaseMapper接口,就可以实现简单的 增删改查,更多的复杂的应用,我们将在后面进一步呈现。

参考:

标签:Java,Spring,Boot,---,baomidou,println,import,com,public
From: https://www.cnblogs.com/davis12/p/17933802.html

相关文章

  • 无涯教程-Java NIO - 简介
    Java1.4中引入了Java.nio包,引入了用于I/O操作的面向缓冲区和通道的数据流,从而提供了更快的执行速度和更好的性能。NIOAPI还提供了selector选择器,该选择器引入了以异步或非阻塞方式侦听IO事件的多个通道的功能。在NIO中,最耗时的I/O任务将缓冲区填充和释放到操作系统中,从而提高......
  • Java虚拟机内存模型概念
    Java虚拟机内存模型概念  Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区methodarea  一、栈stack  1. 栈描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)  2.JVM为每个线程创建一个栈,用于存放该线程执......
  • JAVA学习12-28 数据类型
    数据类型学习publicclassDemo01{publicstaticvoidmain(String[]args){//单行注释/*多行注释*//*不能用关键字来做标识符*//*标识符可以大写字母,小写字母,美元符号,下划线_开头,不能以关键字作为变量名或方法名,-......
  • Java 实现List反转(reverse)的方法
    ​ List的反转是一种常见的操作,反转List会改变列表中元素的顺序,可以根据具体的需求在程序中实现不同的功能和行为。本文主要介绍Java中实现List反转(reverse)的方法,以及相关的示例代码。1、使用for循环实现使用for循环对List进行倒序遍历,添加到一个List中实现反转。代码示......
  • 无涯教程-Java泛型 - 不允许 重载
    一个类不允许具有两个在类型擦除后可以具有相同签名的重载方法。classBox{//Compilererror//Erasureofmethodprint(List<String>)//isthesameasanothermethodintypeBoxpublicvoidprint(List<String>stringList){}publicvoidprint(Li......
  • Spring BeanFactoryAware 解决 prototype 作用域失效问题
    跟着孙哥学Spring,b站:https://www.bilibili.com/video/BV185411477k/?spm_id_from=333.337.search-card.all.click在Spring中,如果一个singletonbean依赖了一个prototypebean,那么这个prototypebean在初始化时只会被创建一次,这就是所谓的"prototypescope失效"的问题......
  • RocketMQ系统性学习-SpringCloud Alibaba集成RocketMQ以及消费收发实战
    欢迎关注公众号:【11来了】发送“资料”可以下载Redis、JVM系列文章PDF版本!作者为在读研究生,目前研二,计划在公众号记录学习常用中间件笔记,以及明年更新面试经历!SpringCloudAlibaba集成RocketMQ最佳实践SpringBoot相对于SSM来说已经很大程度上简化了开发,但是使用SpringBo......
  • 无涯教程-Java泛型 - 不允许 数组
    不允许使用参数化类型的数组。//无法创建Box<Integer>的通用数组Box<Integer>[]arrayOfLists=newBox<Integer>[2];由于编译器使用类型擦除,因此将type参数替换为对象,并且用户可以将任何类型的对象添加到数组中。并且在运行时,代码将无法引发ArrayStoreException。//编译......
  • Maven插件系列之spring-boot-maven-plugin
    SpringBoot的Maven插件(SpringBootMavenplugin)能够以Maven的方式为应用提供SpringBoot的支持,即为SpringBoot应用提供了执行Maven操作的可能。SpringBootMavenplugin能够将SpringBoot应用打包为可执行的jar或war文件,然后以通常的方式运行SpringBoot应用。SpringBootMave......
  • 无涯教程-Java泛型 - 不允许 异常
    泛型类不允许直接或间接扩展Throwable类。//泛型类Box<T>可能不是java.lang.Throwable的子类classBox<T>extendsException{}//泛型类Box<T>可能不是java.lang.Throwable的子类classBox1<T>extendsThrowable{}不允许方法捕获类型参数的。publicstatic<T......