软件编程
位置:首页>> 软件编程>> java编程>> Mybatis-Plus环境配置与入门案例分析

Mybatis-Plus环境配置与入门案例分析

作者:扎哇太枣糕  发布时间:2022-02-05 01:15:01 

标签:Mybatis,Plus,环境配置,入门

1 初识Mybatis-Plus

  MyBatis-Plus简称 MP,是一个 MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus有很多的特点支持很多的标准数据库,具体等学到相关特性的时候再去详细了解。MyBatis-Plus的官方文档:https://baomidou.com/

关于MyBatis-Plus的框架结构,也就是框架的底层实现官方文档给出如下试图,简单总结来就是:扫描实体类,通过反射抽取实体类中的属性并分析其与表中字段之间的关系,最后调用MyBatis-Plus提供的一堆方法生成SQL语句注入到MyBatis的容器中,从而实现不同的增删改查功能

Mybatis-Plus环境配置与入门案例分析

2 入门案例

前期环境准备

第一步: 创建数据库表并插入数据


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;

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

第二步: 使用Spring Initializr快速创建一个SpringBoot工程

Mybatis-Plus环境配置与入门案例分析

删除选中的不必要文件以及文件夹

Mybatis-Plus环境配置与入门案例分析

第三步: pom文件导入相关依赖


<!--mybatis-的场景启动器-->
<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-boot-starter</artifactId>
   <version>3.5.1</version>
</dependency>

<!--lombok简化实体类开发,如果之前没有下载过依赖的同名插件的话需要下载安装,然后重启一下idea-->
<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <optional>true</optional>
</dependency>

<!--数据库连接驱动-->
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.32</version>
   <scope>runtime</scope>
</dependency>

<!--整合druid的数据源-->
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid-spring-boot-starter</artifactId>
   <version>1.1.17</version>
</dependency>

第四步: 配置文件改后缀为.yml并配置数据源

spring:
# 数据源的各种配置
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis_plus
username: root
password: 123456

# Mybatis-Plus开启日志打印
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

各层代码编写

domain层实体类


/**
* @author : mereign
* @date : 2022/3/13 - 14:28
* @desc : user实体类
*/

// 在编译期间生成user类的全参构造方法
@AllArgsConstructor
// 在编译期间生成user类的无参构造方法
@NoArgsConstructor
// 在编译期间生成封装属性的setter、getter方法,并重写了toString和equals、hashCode方法
@Data
public class User {

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

}

mapper层继承接口


/**
* @author : mereign
* @date : 2022/3/13 - 15:43
* @desc : 创建mapper接口继承BaseMapper接口并传user泛型
*/

// spring框架创建mapper接口相对应的接口实现类
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

测试类


/**
* @author : mereign
* @date : 2022/3/13 - 15:50
* @desc : 测试类简单测试mp的查询方法
*/

@SpringBootTest
public class MybatisPlusTest {

@Autowired
   UserMapper mapper;

@Test
   public void selectListTest() {
       // 通过条件构造器查询到一个list集合,如果没有条件的话参数设置为null
       List<User> users = mapper.selectList(null);
       users.forEach(System.out::println);
   }
}

入门案例查询结果

Mybatis-Plus环境配置与入门案例分析

入门案例中的小知识点

⚠ 测试类中注入mapper组件的时候代码会报红,但是并不会影响最终的程序执行结果。原因是:@Mapper接口将该接口动态生成的代理类注入到IOC容器中起相应的作用,所以使用自动注入mapper的时候会报红在容器中找不到这个接口组件。解决方法:在mapper接口上加@Repository注解将类或接口标注为一个持久层组件。这样的话一个注解用来起作用,一个注解用来注入的时候找到接口组件防止报红 ⚠ 

生成的SQL语句中,表名为mapper接口传入的泛型首字母小写,表中字段名为泛型类的封装属性,如果需要修改实体类绑定的表名的话需要在实体类上使用@TableName注解

来源:https://blog.csdn.net/qq_59138417/article/details/123454703

0
投稿

猜你喜欢

  • 现在很多流行的框架,都可以很快的把分页效果做出来,但是作为一名程序员你必须得知道手写分页的流程:场景效果:一、分页的思路首先我们得知道写分页
  • 冒泡排序算法演示图:public static void bubbleSort(int[] array) {     &
  • 前言这篇博客介绍Java环境的配置,主要是安装JDK,以及path、JAVA_hOME、CLASSPAT的配置,还会介绍配置这些的原因。一.
  • 目录常见的实现方式效果图:完整代码布局代码常见的实现方式切图,做旋转动画自定义View,绘制效果gif图1、切图会增加体积,但相对简单,不过
  • 今天收到了Android Studio3.0更新推送,在升级过程中遇到几个问题,在这里把问题和解决方法记录下,方便要升级的童鞋。如果还有童
  • 本文实例为大家分享了Java实现五子棋网络版的具体代码,供大家参考,具体内容如下需求分析:对于网络五子棋而言,在普通五子棋的基础上需要添加以
  • EntityWrapper的常用方法#WHERE (issue_type = ?) AND (status = ? OR status =
  • 本文实例讲述了C#实现字符串与图片的Base64编码转换操作。分享给大家供大家参考,具体如下:using System;using Syst
  • 我们开发一个Spring Boot项目,肯定要导入许多的静态资源,比如css,js等文件如果我们是一个web应用,我们的main下会有一个w
  • 安全发布对象在静态初始化函数中初始化一个对象引用将对象的引用保存到volatile类型域或者AtomicReference对象中将对象的引用
  • Optional在JAVA中被定义为一个容器类,更确切的说只存一个元素的容器。container object which may or m
  • 本文代码为原创一个简陋的管理系统,只做功能的测试。并没有去完善所有应有的功能,只做了输入输出查找,仅供参考! 菜单部分: 
  • 数学工具类Math,供大家参考,具体内容如下1. 概述java.util.Math类是数学相关的工具类,里面提供了大量的静态方法,完成与数学
  • 一、什么是HTTP协议HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应
  • 前言Java多线程实现方式主要有四种:① 继承Thread类、实现Runnable接口② 实现Callable接口通过FutureTask包
  • 开发项目的时候,表很多,是不可能一点点的自己去写xml ,dao文件的,这里就需要用到代码的自动生成工具了。第一步:导入jar包,当然,这之
  • 场景:假设每次我们去超市购物,我们都会推一个购物车,有水果、蔬菜、肉类三种商品,提供给我们选择,那么这时候,如果使用装饰器模式,应该如何实现
  • 这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆: java语言规范中说道:在许多情况
  • java 实现MD5加密算法的简单实例实现代码:import java.security.NoSuchAlgorithmException;
  • 一、JDK中常见的异常情况1、常见异常总结图2、java中异常分类Throwable类有两个直接子类:(1)Exception:出现的问题是
手机版 软件编程 asp之家 www.aspxhome.com