从零集成mybatis-plus

news2024/10/7 6:44:15

Mybatis-Plus特性:

  1. 无侵入,即引入它不会对现有工程产生影响。
  2. 损耗小,启动就会自动注入基本的CRUD,内置通用Mapper、Service等,基本能满足大部分需求。
  3. 支持主键自动生成,其中包括分布式唯一ID生成器Sequence,内置代码生成器,采用代码或者maven插件可快速生成Mapper、Service、Controller层代码。
  4. 内置分页插件,无需自己计算,且支持多种数据库,还内置性能分析插件,可打印SQL语句以及执行时间,便于慢SQL查询及优化。

框架结构

从零开始使用Mybatis-Plus(基于SpringBoot)

  1. 使用IDE新建一个SpingBoot工程,添加相关依赖(以MySQL为例):
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.5</version>
    <relativePath/> 
</parent>
<groupId>com.brevity</groupId>
<artifactId>mp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mp</name>
<description>Mybatis-Plus Demo</description>
<properties>
    <java.version>1.8</java.version>
</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>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.5.2</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
    </dependency>
</dependencies>

新建数据库mp,创建user表,插入了10条数据,SQL如下:

DROP TABLE IF EXISTS user;
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)
);
DELETE FROM user;
INSERT INTO `mp`.`user` (`id`, `name`, `age`, `email`) VALUES 
(1, 'Tom', 18, 'Tom@mp.com'),
(2, 'Jack', 20, 'Jack@mp.com'),
(3, 'Brevity', 28, 'Brevity@mp.com'),
(4, 'Brevity_520', 22, 'Brevity_520@mp.com'),
(5, 'Billie', 24, 'Billie@mp.com'),
(6, 'Jone', 18, 'Jone@mp.com'),
(7, 'Jack', 20, 'Jack@mp.com'),
(8, 'John', 28, 'John@mp.com'),
(9, 'Sandys', 21, 'Sandys@mp.com'),
(10, 'Bill', 24, 'Bill@mp.com');

application.properties配置文件中添加数据库配置,具体内容如下所示:

spring.datasource.url=jdbc:mysql://localhost:3306/mp?serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

在SpringBoot启动类中添加@MapperScan注解,用来扫描Mapper文件夹,如下所示:

@SpringBootApplication
@MapperScan("com.brevity.mp.mapper")
public class MpApplication {
    public static void main(String[] args) {
        SpringApplication.run(MpApplication.class, args);
    }
}

编写User实体类以及UserMapper接口:

@Data // Lombok注解
public class User implements Serializable {
    private static final long SerialVersionUID = 1L;
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

public interface UserMapper extends BaseMapper<User> {
}

编写测试类开始测试代码:

@SpringBootTest
class MpApplicationTests {
    @Autowired
    private UserMapper userMapper;
    @Test
    void testMp() {
        System.err.println("-------select method--------");
        List<User> userList = userMapper.selectList(null);
        Assert.assertEquals(10, userList.size());
        userList.forEach(System.out::println);
    }
}

至此,入门代码已经编写完毕,且测试成功,可以看到,没有编写任何xml文件就实现了查询,仅需要添加maven依赖,配置扫描注解即可,这就是它的强大之处之一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20019.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PTA题目 分段计算居民水费

为鼓励居民节约用水&#xff0c;自来水公司采取按用水量阶梯式计价的办法&#xff0c;居民应交水费y&#xff08;元&#xff09;与月用水量x&#xff08;吨&#xff09;相关&#xff1a;当x不超过15吨时&#xff0c;y4x/3&#xff1b;超过后&#xff0c;y2.5x−17.5。请编写程序…

[附源码]java毕业设计时事资讯平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

黑*头条_第1章_项目介绍和工程搭建

黑*头条_第1章_项目介绍和工程搭建 文章目录黑*头条_第1章_项目介绍和工程搭建学习目标1. 项目介绍1.1项目背景1.2 项目概述1.3 项目术语定义2. 项目需求2.1 APP主要功能大纲2.2 APP用例图&#xff08;主要功能&#xff09;2.3 WEMEDIA功能大纲2.4 WEMEDIA用例图&#xff08;主…

STM32嵌入式工程师自我修养

STM32嵌入式工程师自我修养一、STM32必备技能二、程序员必须熟知三、学习STM32自备资料和硬件一、STM32必备技能 1、熟悉 C 语言编程&#xff0c;熟练 STM32CUBEMX,Keil 开发环境。 2、熟悉基于STM32 MCU开发&#xff0c;掌GPIO,TIME,PWM,ADC等外设开发。 3、熟悉USART,IIC,SP…

快速熟悉C++之常用语法

函数重载&#xff08;Overload&#xff09; 规则 函数名相同 参数个数不同、参数类型不同、参数顺序不同 ◼ 注意 返回值类型与函数重载无关 调用函数时&#xff0c;实参的隐式类型转换可能会产生二义性 ◼ 本质 采用了name mangling或者叫name decoration技术 ✓…

Java锁对象

Java锁 1. 对象头 1.1 简介 以32位的 JVM 为例&#xff0c;每个Java对象的对象头都包含了如下信息 # 组成 Mark Word: 锁的信息&#xff0c;hashcode&#xff0c;垃圾回收器标志 Klass Word: 指针&#xff0c;包含当前对象的Class对象的地址&#xff0c;类对象来确…

基于python的校园社团管理系统的设计与实现

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&…

JS 类总结

类 class 关键字是 ES6 新增的。类&#xff08;class&#xff09;是ECMAScript 中新的基础性语法糖&#xff0c;本质上还是一个函数&#xff0c;但实际上它使用的仍然是原型和构造函数的概念。并且类受块级作用域限制。 class Person { } console.log(Person);// class Perso…

Java无锁并发

共享资源 1. 不安全场景 package com.nike.erick.d05;import lombok.Getter;import java.util.concurrent.TimeUnit;public class Demo01 {public static void main(String[] args) throws InterruptedException {BankService bankService new BankService();for (int i 0;…

H5 app开启web调试

前言&#xff1a; 在Android app逆向时&#xff0c;H5类型的app的加密通常在js中&#xff0c;所以就需要一种手段来查看源代码&#xff0c;查看加密过程。 0、如何确认h5 app 以狗东为例&#xff1a; 随便选择一个元素&#xff0c;可以看到是控件下的一个类 通过与H5类型的ap…

[附源码]SSM计算机毕业设计在线课程网站JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

基于java_ssm_vue鲜花在线销售商城网站-计算机毕业设计

现在&#xff0c;许多人都喜欢在节日的时候给家人或朋友送鲜花&#xff0c;但是有时候会因为工作忙而忘记或者是没有时间自己去买&#xff0c;同时也有些人觉得自己去买有些麻烦&#xff0c;所以鲜花网络销售是很有必要的。这个网站应该可以提供提前预定、送货上门等服务。首先…

Arduino开发实例-MAX30100传感器模块连接问题解决

MAX30100传感器模块连接问题解决 MAX30100 是一款集成脉搏血氧饱和度和心率监测传感器解决方案。 它结合了两个 LED、一个光电探测器、优化的光学器件和低噪声模拟信号处理,以检测脉搏血氧饱和度和心率信号。 MAX30100 采用 1.8V 和 3.3V 电源供电,可通过软件关断,待机电流…

【Java第33期】:在普通的Maven项目中存储Bean对象并获取和使用

作者&#xff1a;有只小猪飞走啦 博客地址&#xff1a;https://blog.csdn.net/m0_62262008?typeblog 内容&#xff1a;存储Bean对象&#xff0c;再在Spring中获取Bean对象&#xff0c;对其进行使用。 文章目录前言一&#xff0c;存储Bean对象1&#xff0c;创建Bean对象2&…

过控Matlab-串级控制系统的参数整定(二)

太原理工大学过程控制实验之串级控制系统的参数整定 过控Matlab-串级控制系统的参数整定实验内容1.根据动态特性参数法对简单控制系统的控制器参数整定2.根据稳定边界方法对简单控制系统的控制器参数整定利用稳定边界法&#xff0c;分别计算系统采用P、PI、PID调节规律时的PID控…

玩机搞机---关于安卓机型工厂固件 刷机 端口解密 解bl锁 写串 nv损坏 等相关常识

*******工程机和工厂固件方面的常识 可能很多玩机友友对什么是工厂固件比较陌生。那么今天的话题就围绕这个和大家讨论下。其实一般厂家的流程都是在一部机型推放市场之前&#xff0c;需要经过预研企划、研发设计、全面测试等诸多环节。在这一整个改善的全过程中&#xff0c;厂…

使用Eclipse搭建STM32嵌入式开发环境

1. Eclipse 软件和相关工具的安装 使用 Eclipse 开发 STM32 等嵌入式软件项目时&#xff0c;需要安装的软件或者工具有&#xff1a; Eclipse 软件本身&#xff0c;eclipse-inst-jre-win64.exe交叉编译工具链&#xff0c;gcc-arm-none-eabi-10.3-2021.10-win32make 构建工具&a…

linux读写锁

这里写目录标题读写锁的认识读写锁的相关函数练习读写锁的认识 &#xff08;1&#xff09;读写锁是一把锁 &#xff08;2&#xff09;读写锁的类型&#xff1a; pthread_rwlock_t lock 又分“读锁”&#xff08;对内存进行读操作&#xff09;和“写锁”&#xff08;对内存进行…

【数据结构Note5】- 树和二叉树(知识点超细大全-涵盖常见算法 排序二叉树 线索二叉树 平衡二叉树 哈夫曼树)

文章目录5.1 树和二叉树引入5.1.1 树的概念5.1.2 树的表示5.1.3 树中基本术语5.1.4 树的表示5.2 二叉树5.2.1 概念5.2.2 二叉树的性质5.2.3 特殊的二叉树5.2.4 二叉树的顺序存储5.2.5 二叉树的链式存储5.2.6 二叉树的深度优先遍历&#xff08;递归&#xff09;5.2.7 二叉树的遍…

[MQ] 死信队列介绍与场景描述

✨✨个人主页:沫洺的主页 &#x1f4da;&#x1f4da;系列专栏: &#x1f4d6; JavaWeb专栏&#x1f4d6; JavaSE专栏 &#x1f4d6; Java基础专栏&#x1f4d6;vue3专栏 &#x1f4d6;MyBatis专栏&#x1f4d6;Spring专栏&#x1f4d6;SpringMVC专栏&#x1f4d6;SpringBoot专…