mybatisPlus入门篇

这篇具有很好参考价值的文章主要介绍了mybatisPlus入门篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


mybatisPlus入门篇,# MybatisPlus,java,MybatisPlus,后端

初窥门径

1.1 初识MybatisPlus

  • MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

  • 从Mybatis框架的开发效率怎么样?每当我们需要编写一个SQL需求的时候,需要做以下步骤
  1. Mapper接口提供一个抽象方法
  2. Mapper接口对应的映射配置文件提供对应的标签和SQL语句
  3. 在Service中依赖Mapper实例对象
  4. 调用Mapper实例中的方法
  5. 在Controller中依赖Service实例对象
  6. 调用Service实例中的方法
    通过上面的发现,对于一个SQL需求,无论是单表还是多表,我们是需要完成如上几步,才能实现SQL需求的开发

  • 但是在开发中,有一些操作是通用逻辑,这些通用逻辑是可以被简化的,例如:
    1. 对于dao,是否可以由框架帮我们提供好单表的Mapper抽象方法,和对应的SQL实现,不需要程序员去实现这些
    2. 对于service,使用可以有框架直接帮我们提供好一些service的抽象方法,和对应的实现,不需要程序员去实现这些
    3. 一些其他的企业开发中所需要的操作
  • 其实核心框架并没有发生变化,依然还是Mybatis,只不过MybatisPlus对于Mybatis进行一些封装和进化,让它更加的好用,更加的易用。

1.2 MybatisPlus的特性

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎。
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
  • 分页插件支持多种数据库:支持 MySQL、MariaDB等多种数据库
  • 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

1.3 MybatisPlus的架构模型

mybatisPlus入门篇,# MybatisPlus,java,MybatisPlus,后端

入门案例

2.1 准备相关开发环境

  • IDEA
  • PostMan
  • Navicat/Sqlyog
  • Mysql 5.+
  • JDK 1.8

2.2 搭建springboot工程

mybatisPlus入门篇,# MybatisPlus,java,MybatisPlus,后端文章来源地址https://www.toymoban.com/news/detail-621895.html

2.3 创建数据库

  • 创建数据库mybatisplus
  • 建表语句
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 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.4 引入相关依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.16</version>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.5 创建实体类

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

2.6 集成MybatisPlus

  1. 编写Mapper接口
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.powernode.domain.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper extends BaseMapper<User> {
}
  1. 编写Service接口
package com.powernode.service;

import com.powernode.domain.User;

import java.util.List;

public interface UserService extends IService<User> {
    List<User> selectList();
}
  1. 编写ServiceImpl
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
    @Autowired
    UserMapper userMapper;


    @Override
    public List<User> selectList() {
        return userMapper.selectList(null);
    }
}
  1. 编写Controller
import com.powernode.domain.User;
import com.powernode.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {
    @Autowired
    UserService userService;

    @RequestMapping("/selectList")
    public String selectList() {
        List<User> all;
        all = userService.selectList();
        return all.toString();
    }
}
  1. 编写配置文件
spring:
  datasource:
    password: xxx
    username: xxx
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatisplus?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false

2.7 单元测试

  • 通过单元测试的方式来编写
@SpringBootTest
class Mp02ApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    void selectList() {
        List<User> userList = userMapper.selectList(null);
        System.out.println(userList);
    }
}

2.8 springboot日志优化

  1. 去除mybatisplus的logo
mybatis-plus:
  global-config:
    banner: false
  1. 去除springboot的logo
spring:
    main:
     banner-mode: off
  1. MybatisPlus的执行日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

到了这里,关于mybatisPlus入门篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MyBatisPlus入门案例

    MyBatisPlus主要是对MyBatis的简化,我们先体会下它简化在哪,然后再学习它是什么,以及它帮我们都做哪些事。 MybatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提供效率。 开发方式 基于MyBatis使用MyBatisPlus 基于Spring使用MyBatisPlus 基于SpringBoot使用MyB

    2024年02月05日
    浏览(30)
  • MyBatisPlus入门案例与简介

    这一节我们来学习下MyBatisPlus的入门案例与简介,这个和其他课程都不太一样,其他的课程都是先介绍概念,然后再写入门案例。而对于MyBatisPlus的学习,我们将顺序做了调整,主要的原因MyBatisPlus主要是对MyBatis的简化,所有我们先体会下它简化在哪,然后再学习它是什么,以

    2023年04月12日
    浏览(36)
  • Springboot入门之集成MybatisPlus

    MybatisPlus是一个 Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生。  1.添加依赖【pom.xml】 2.配置数据源信息[application.yml] 3.MybatisPlus拦截器配置 配置后MybatisPlus增加功能生效【如分页等】。 4.编写XxxMapper extends BaseMapperXxxDo; 5.编写XxxService e

    2023年04月10日
    浏览(37)
  • MybatisPlus快速入门及常见设置

    目录 一、快速入门 1.1 准备数据 1.2 创建SpringBoot工程 1.3 使用MP 1.4 获取Mapper进行测试  二、常用设置 2.1 设置表映射规则 2.1.1 单独设置 2.1.2 全局设置 2.2 设置主键生成策略  2.2.1 为什么会有雪花算法? 2.2.2 垂直分表 2.2.3 水平分表 2.2.4 单独设置 2.2.5 全局设置 2.3 设置字段映射

    2024年02月19日
    浏览(30)
  • 【MyBatisPlus】快速入门、常用注解、常用配置

    🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 MyBatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能,并且实现了自动装配效果。 要操作的数据库表结构: Mybatis的UserMapper.java

    2024年02月07日
    浏览(36)
  • Java开发 - MybatisPlus框架初体验

    目录 前言 MyBatisPlus 什么是MyBatisPlus 特性 Spring Boot整合MyBatisPlus 创建项目

    2023年04月10日
    浏览(33)
  • MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除

    目录 MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合。 封装User模型的查询条件,这里age是具有上下限的,User类里面的age作为下限,这里的age2作为上限。 domain.query.UserQuery.java ①if语句控制 ②条件参数控制 查询结果包含模型类中的部分属性

    2024年02月09日
    浏览(39)
  • Java在线代码生成工具,支持JPA、Mybatis、MybatisPlus

    【Java代码生成神器】自动化生成Java实体类、代码、增删改查功能!点击访问 推荐一个自己每天都在用的Java代码生成器!这个网站支持在线生成Java代码,包含完整的ControllerServiceEntityDao代码,完整的增删改查功能! 还可以自定义自己的代码模板、自由配置高级选项,指定

    2024年02月19日
    浏览(41)
  • Java框架学习(二)SSM体系:Spring、SpringMVC、MybatisPlus

    在原始的分层架构实现中,负责响应请求的Controller层依赖于业务逻辑处理的Service层,而业务逻辑处理的service层又依赖与数据访问Dao层。上下层间相互依赖耦合,耦合的缺陷在于牵一发而动全身,不利于后期维护拓展。 为了分层解耦,Spring采用IoC控制反转和DI依赖注入,来解

    2024年02月11日
    浏览(49)
  • java之SpringBoot基础、前后端项目、MyBatisPlus、MySQL、vue、elementUi

    在基础篇中,我给学习者的定位是先上手,能够使用 SpringBoot 搭建基于 SpringBoot 的 web 项目开发,所以内容设置较少,主要包含如下内容: 1、 SpringBoot 快速入门 2、 SpringBoot 基础配置 3、基于 SpringBoot 整合 SSMP 学习任意一项技术,首先要知道这个技术的作用是什么,不然学完

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包