iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >MyBatisPlus的简介及案例详解
  • 871
分享到

MyBatisPlus的简介及案例详解

2024-04-02 19:04:59 871人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、mybatisPlus简介二、MyBatisPlus入门案例1、创建数据库及表2、创建SpringBoot工程3、勾选配置使用技术4、pom.xml补全依赖5、添加MP的相关

一、MyBatisPlus简介

MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率

MyBatisPlus的官网为:https://baomidou.com/

从这张图可以看出MP旨在成为MyBatis的最好搭档,而不是替换MyBatis,所以可以理解为MP是MyBatis的一套增强工具,它是在MyBatis的基础上进行开发的,我们虽然使用MP但是底层仍然是MyBatis的东西,也就是说我们也可以在MP中写Mybatis的内容。

对于MP的学习,大家可以参考官方文档进行学习,里面有详细的代码案例。

MP的特性:

● 无侵入:只做增强不做改变,不会对现有工程产生影响

● 强大的CRUD操作:内置通用Mapper,少量配置即可实现单表CRUD操作

● 支持Lambda:编写查询条件无需担心字段写错

● 支持主键自动生成

● 内置分页插件

......

二、MyBatisPlus入门案例

开发方式:

  • 基于MyBatis使用MyBatisPlus
  • 基于spring使用MyBatisPlus
  • 基于SpringBoot使用MyBatisPlus

回顾基于SpringBoot整合Mybatsi开发过程:

  • 创建SpringBoot工程,配置相关属性及勾选能够实现自动添加起步依赖包
  • 设置dataSource相关属性(JDBC参数)
  • 定义数据层接口映射配置

基于以上实现步骤,对SpringBoot整合MyBatisPlus来快速实现下

1、创建数据库及表

create database if not exists mybatisplus_db character set utf8; 
 
use mybatisplus_db; 
 
CREATE TABLE user ( 
id bigint(20) primary key auto_increment, 
name varchar(32) not null, 
passWord varchar(32) not null, 
age int(3) not null , 
tel varchar(32) not null 
);
 
insert into user values(1,'Tom','tom',3,'18866668888'); 
insert into user values(2,'Jerry','jerry',4,'16688886666'); 
insert into user values(3,'Jock','123456',41,'18812345678'); 
insert into user values(4,'hello','itcast',15,'4006184000');

2、创建SpringBoot工程

3、勾选配置使用技术

说明:由于MP并未被收录到idea的系统内置配置,无法直接选择加入,需要手动在pom.xml中配置添加

4、pom.xml补全依赖

<dependency> 
    <groupId>com.baomidou</groupId> 
    <artifactId>mybatis-plus-boot-starter</artifactId> 
    <version>3.4.1</version> 
</dependency> 
<dependency> 
    <groupId>com.alibaba</groupId> 
    <artifactId>druid</artifactId> 
    <version>1.1.16</version> 
</dependency>

说明:

● druid数据源可以加也可以不加,SpringBoot有内置的数据源,可以配置成使用Druid数据源

● 从MP的依赖关系可以看出,通过依赖传递已经将MyBatis与MyBatis整合Spring的jar包导入,我们不需要额外在添加MyBatis的相关jar包

5、添加MP的相关配置信息

resources默认生成properties配置文件,可以将其替代成yml文件,并在文件中配置数据库连接相关信息:application.yml

spring: 
    datasource: 
        type: com.alibaba.druid.pool.DruidDataSource 
        driver-class-name: com.Mysql.cj.jdbc.Driver 
        url: jdbc:mysql://localhost:3306/mybatisplus_db?serverTimezone=UTC 
        username: root 
        password: root

6、根据数据库表创建实体类

public class User{
    private Long id;
    private String name;
    private String password;
    private Integer age;
    private String tel;
 
    //setter...getter...toString方法略
}

7、创建Dao接口

@Mapper
public interface UserDao extends BaseMapper<User>{
}

8、编写引导类

@SpringBootApplication 
//@MapperScan("com.itheima.dao") 
public class Mybatisplus01QuickstartApplication { 
 
    public static void main(String[] args) {
        SpringApplication.run(Mybatisplus01QuickstartApplication.class, args); 
    } 
}

说明:Dao接口要想被容器扫描到,有两种解决方案:

方案一:在Dao接口上添加@Mapper注解,并确保Dao处在引导类所在包或其子包中

该方案的缺点是需要在每一Dao接口中添加注解

方案二:在引导类上添加@MapperScan注解,其属性为所要扫描的Dao所在包

该方案的好处是只需要写一次,则指定包下所有的Dao接口都能被扫描到,@Mapper就可以不写

9、编写测试类

@SpringBootTest 
class MpDemoApplicationTests { 
 
    @Autowired 
    private UserDao userDao; 
    @Test 
    public void testGetAll() { 
        List<User> userList = userDao.selectList(null); 
        System.out.println(userList); 
    } 
}

说明:

userDao注入的时候下面有红线提示的原因:

UserDao是一个接口,不能实例化对象

只有在服务器启动ioc容器初始化后,由框架DAO接口的代理对象来注入

现在服务器并未启动,所以代理对象也未创建,IDEA查找不到对应的对象注入,所以提示报红

一旦服务器启动,就能注入其代理对象,所以该错误提示不影响正常运行

跟之前整合MyBatis相比,我们不需要再Dao接口中编写方法和sql语句,只需要继承BaseMapper接口即可,整体来说简化很多。

到此这篇关于MyBatisPlus的简介及案例详解的文章就介绍到这了,更多相关MyBatisPlus案例内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: MyBatisPlus的简介及案例详解

本文链接: https://www.lsjlt.com/news/164709.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatisPlus的简介及案例详解
    目录一、MyBatisPlus简介二、MyBatisPlus入门案例1、创建数据库及表2、创建SpringBoot工程3、勾选配置使用技术4、pom.xml补全依赖5、添加MP的相关...
    99+
    2024-04-02
  • MyBatis框架简介及入门案例详解
    目录前言MyBatis简介快速入门映射文件sql片段与resultMapMyBatis的增删改查1.添加操作2.修改操作3.删除操作前言 传统的JDBC操作数据库都是通过写一个jav...
    99+
    2022-11-13
    MyBatis 简介 MyBatis 案例
  • Java的jps命令简介及使用示例详解
    目录jps命令简介jps命令参数jps命令示例结尾jps命令简介 jps(Java Virtual Machine Process Status Tool)是JDK提供的一个可以列出...
    99+
    2024-04-02
  • Python : Xpath简介及实例讲解
    文章目录 一、Xpath简介二、Xpath语法规则语法规则标签定位属性定位索引定位取文本内容 三、语法规则练习 前言 CSDN上已经有很多大佬发过Xpath,而且讲的都很好,我是...
    99+
    2023-09-15
    python 网络爬虫
  • MySQL的savepoint简介及实例
    目录写在前面1:什么是savepoint2:实例写在后面写在前面 本文看下mysql的savepoint相关内容。 1:什么是savepoint savepoint是事务中一个概念,允许在事务执行的过程中暂存事务执行到当...
    99+
    2023-08-24
    MySQL savepoint
  • Java Jwt库的简介及使用详解
    JWT介绍 JWT概念 JWT , 全写JSON Web Token, 是开放的行业标准RFC7591,用来实现端到端安全验证. 简单来说, 就是通过一些算法对加密字符串和JSON对...
    99+
    2024-04-02
  • mybatisplus中返回Vo的案例讲解
    注意: mybatisplus内置的几个方法使用泛型限制了方法的返回类型,所以实现返回Vo还是得自定义方法, 这个方法名尽量不要和原有的名字类似(以免出问题), 采用mybatisp...
    99+
    2023-03-14
    mybatisplus返回Vo
  • Python中的tkinter库简单案例详解
    目录案例一Label & Button 标签和按钮案例二Entry & Text 输入和文本框案例三Listbox 部件案例四Radiobutton 选择按钮案例五S...
    99+
    2024-04-02
  • K8s-helm简介及基本概念详解
    目录Helm简介一、什么是 Helm(官网:https://helm.sh/)二、Helm中的基本概念Chart三、从Helm2到Helm3的变化四、Helm版本支持策略Helm简介...
    99+
    2024-04-02
  • MySQL连接数简介及作用详解
    MySQL连接数简介及作用详解 一、MySQL连接数概述在MySQL数据库中,连接数是指同时连接到数据库服务器的客户端用户数量。连接数的大小限制了同时连接到数据库服务器的客户端数量,对...
    99+
    2024-04-02
  • C++中map和set的简介及使用详解
    目录关联式容器键值对setset的介绍set的使用multisetmapmap的介绍map的使用map构造map的插入map的[ ]运算符重载multiset关联式容器 关联式容器包...
    99+
    2024-04-02
  • Serverlet简介及理解
    Servlet是一种Java编写的服务器端程序,用于处理客户端的请求并生成响应。它是运行在Web服务器上的Java类,可以接收HTT...
    99+
    2023-09-13
    Serverlet
  • pythonio.BytesIO简介及示例代码
    目录io.BytesIO简要介绍及示例输出的为什么是b开头的bytes转换成字符串io.BytesIO简要介绍及示例 io.BytesIO 是 Python 内置的一个 I/O 类,...
    99+
    2023-05-20
    python io.BytesIO python io.BytesIO使用
  • Android Build类的详解及简单实例
    Android Build类的详解及简单实例一、类结构:java.lang.Object? android.os.Build...
    99+
    2023-05-30
    android build类 roi
  • Java SPI简单应用案例详解
    开篇 本文主要谈一下 Java SPI(Service Provider Interface) ,因为最近在看 Dubbo 的相关内容,其中涉及到了 一个概念- Dubbo SPI,...
    99+
    2024-04-02
  • 【python】io.BytesIO简要介绍及示例
    io.BytesIO简要介绍及示例 io.BytesIO 是 Python 内置的一个 I/O 类,用于在内存中读写二进制数据。它的作用类似于文件对象,但是数据并不是存储在磁盘上,而是存储在内存中的字...
    99+
    2023-10-09
    java 开发语言
  • Python logging简介详解
    目录一、日志级别1.级别定义2.简单示例3.指定级别二、基本概念1.Logger2.Handler3.Formatter三、示例1.日志输出至控制台2.日志输出至文件四、默认Logg...
    99+
    2024-04-02
  • Vuex的安装、搭建及案例详解
    目录前言Vuex原理讲解 1、安装vuex组件2、使用Vuex求和案例Coute.vuestore.jsActions Mutationsgetters的使用:s...
    99+
    2024-04-02
  • Android中SharedPreference详解及简单实例
     Android中SharedPreference详解   SharedPreference是Android提供的一种轻量级的数据存储方式,主要用来存储一些简单的配置信息,例如,默认欢迎语,登录用户名和密码等。...
    99+
    2023-05-30
    android sharedpreference roi
  • Kotlin 泛型详解及简单实例
     Kotlin 泛型详解概述一般类和函数,只能使用具体的类型:要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的约束对代码的限制很大。而OOP的多态采用了一种泛化的机制,在SE 5种,Java引用了泛...
    99+
    2023-05-31
    kotlin 泛型
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作