MyBatis Plus 入门使用详细教程

一、MyBatis Plus 介绍

MyBatis Plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

MyBatis Plus 的核心功能有:支持通用的 CRUD、代码生成器与条件构造器。

通用 CRUD:定义好 Mapper 接口后,只需要继承 BaseMapper<T> 接口即可获得通用的增删改查功能,无需编写任何接口方法与配置文件条件构造器:通过 EntityWrapper<T> (实体包装类),可以用于拼接 SQL 语句,并且支持排序、分组查询等复杂的 SQL代码生成器:支持一系列的策略配置与全局配置,比 MyBatis 的代码生成更好用

BaseMapper<T> 接口中通用的 CRUD 方法:

二、MyBatis Plus 集成 Spring

数据表结构

DROP TABLE IF EXISTS `tbl_employee`;
CREATE TABLE `tbl_employee` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `last_name` varchar(50) DEFAULT NULL,
 `email` varchar(50) DEFAULT NULL,
 `gender` char(1) DEFAULT NULL,
 `age` int(11) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;

pom 文件

 <dependencies>
 <!-- MP -->
 <dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus</artifactId>
  <version>2.3</version>
 </dependency>
 <!-- 测试 -->
 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
 </dependency>
 <!-- 数据源 -->
 <dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.1.10</version>
 </dependency>
 <!-- 数据库驱动 -->
 <dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.39</version>
 </dependency>
 <!-- Spring 相关 -->
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>4.3.9.RELEASE</version>
 </dependency>
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-orm</artifactId>
  <version>4.3.9.RELEASE</version>
 </dependency>
 </dependencies>

MyBatis 全局配置文件 mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 不作任何配置 -->
<configuration />

数据源 db.properties

jdbc.url=jdbc:mysql://localhost:3306/mp
jdbc.username=root
jdbc.password=1234

Spring 配置文件 applicationContext.xml

<!-- 数据源 -->
 <context:property-placeholder location="classpath:db.properties"/>
 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
 <property name="url" value="${jdbc.url}"></property>
 <property name="username" value="${jdbc.username}"></property>
 <property name="password" value="${jdbc.password}"></property>
 </bean>

 <!-- MP 提供的 MybatisSqlSessionFactoryBean -->
 <bean id="sqlSessionFactoryBean"
  class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
 <!-- 数据源 -->
 <property name="dataSource" ref="dataSource"></property>
 <!-- mybatis 全局配置文件 -->
 <property name="configLocation" value="classpath:mybatis-config.xml"></property>
 <!-- 别名处理 -->
 <property name="typeAliasesPackage" value="com.jas.bean"></property>
 <!-- 注入全局MP策略配置 -->
 <property name="globalConfig" ref="globalConfiguration"></property>
 <!-- 插件注册 -->
 <property name="plugins">
  <list>
  <!-- 注册分页插件 -->
  <bean class="com.baomidou.mybatisplus.plugins.PaginationInterceptor" />
  <!-- 注入 SQL 性能分析插件,建议在开发环境中使用,可以在控制台查看 SQL 执行日志 -->
  <bean class="com.baomidou.mybatisplus.plugins.PerformanceInterceptor">
   <property name="maxTime" value="1000" />
   <!--SQL 是否格式化 默认false-->
   <property name="format" value="true" />
  </bean>
  </list>
 </property>
 </bean>

 <!-- 定义 MybatisPlus 的全局策略配置-->
 <bean id ="globalConfiguration" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
 <!-- 在 2.3 版本以后,dbColumnUnderline 默认值是 true -->
 <property name="dbColumnUnderline" value="true"></property>
 <!-- 全局的主键策略 -->
 <property name="idType" value="0"></property>
 <!-- 全局的表前缀策略配置 -->
 <property name="tablePrefix" value="tbl_"></property>
 </bean>

 <!-- 配置mybatis 扫描mapper接口的路径 -->
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
 <property name="basePackage" value="com.jas.mapper"></property>
 </bean>

三、快速体验 MyBatis Plus

实体类 Employee

@TableName(value = "tbl_employee")
public class Employee {
 @TableId(value = "id", type = IdType.AUTO)
 private Integer id;
 @TableField(value = "last_name")
 private String lastName;
 private String email;
 private Integer gender;
 private Integer age;

 public Employee() {
 super();
 }

 public Employee(Integer id, String lastName, String email, Integer gender, Integer age) {
 this.id = id;
 this.lastName = lastName;
 this.email = email;
 this.gender = gender;
 this.age = age;
 }
 // 省略 set、get 与 toString() 方法

mapper 接口

/**
* 不定义任何接口方法
*/
public interface EmployeeMapper extends BaseMapper<Employee> {}

在测试类中生成测试的 mapper 对象

private ApplicationContext context =
  new ClassPathXmlApplicationContext("classpath:applicationContext.xml");

 private EmployeeMapper employeeMapper =
  context.getBean("employeeMapper", EmployeeMapper.class);

简单查询测试

 @Test
 public void getEmpByIdTest() {
 Employee employee = employeeMapper.selectById(1);

 System.out.println(employee);
 }

分页查询测试

 @Test
 public void getEmpByPage() {
 Page<?> page = new Page<>(1, 5);
 List<Employee> list = employeeMapper.selectPage(page, null);

 System.out.println("总记录数:" + page.getTotal());
 System.out.println("总页数" + page.getPages());
 System.out.println(list);
 }

条件构造器测试

@Test
 public void getEmpByName() {
 EntityWrapper<Employee> wrapper = new EntityWrapper<>();

 // 'last_name' 与 'age' 对应数据库中的字段
 wrapper.like("last_name", "张");
 wrapper.eq("age", 20);

 List<Employee> list = employeeMapper.selectList(wrapper);
 System.out.println(list);
 }

控制台输出的 SQL 分析日志

上面几个例子中,并没有在 EmployeeMapper 接口中定义任何方法,也没有在配置文件中编写 SQL 语句,而是通过继承 BaseMapper<T> 接口获得通用的的增删改查方法,复杂的 SQL 也可以使用条件构造器拼接。

通过这两种方式已经能够满足很多的开发需求了,不过复杂的业务需求还是要编写 SQL 语句的,流程和 MyBatis 一样。

PS:
完整的代码(mybatis-plus-demo 目录)传到了 GitHub,包括 SQL 表结构与数据文件,点我前往~

总结

(0)

相关推荐

  • MyBatis-Plus 快速入门案例(小白教程)

    一.引言 学习MyBatis-Plus前提需要掌握:数据库相关操作.java等相关知识,最好熟悉Mybatis. 那么本章就来讲解快速搭建MyBatis-Plus开发环境以及对数据库实际操作. 二.准备工作 步骤一:使用IDEA快速搭建SpringBoot项目,填写相关信息即可. 步骤二:引入所需要maven依赖,小编这里有使用lombok依赖,有不了解的小伙伴可以自行学习一下,很简单的. <!--lombok--> <dependency> <groupId>org.

  • Mybatis-Plus 搭建与使用入门(小结)

    Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 中文文档 :http://baomidou.oschina.io/mybatis-plus-doc/#/ 本文介绍包括 1)如何搭建 2)代码生成(controller.service.mapper.xml) 3)单表的CRUD.条件查询.分页 基类已经为你做好了 一.如何搭建 1. 首先我们创建一个 springboot 工程 --> https:/

  • MyBatis Plus工具快速入门使用教程

    MyBatis-plus有什么特色 1.代码生成 2.条件构造器 对我而言,主要的目的是使用它强大的条件构建器. 快速使用步骤: 1.添加pom文件依赖 <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> <dep

  • mybatis plus使用redis作为二级缓存的方法

    建议缓存放到 service 层,你可以自定义自己的 BaseServiceImpl 重写注解父类方法,继承自己的实现.为了方便,这里我们将缓存放到mapper层.mybatis-plus整合redis作为二级缓存与mybatis整合redis略有不同. 1. mybatis-plus开启二级缓存 mybatis-plus.configuration.cache-enabled=true 2. 定义RedisTemplate的bean交给spring管理,这里为了能将对象直接存取到redis中,

  • MyBatis Plus 入门使用详细教程

    一.MyBatis Plus 介绍 MyBatis Plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. MyBatis Plus 的核心功能有:支持通用的 CRUD.代码生成器与条件构造器. 通用 CRUD:定义好 Mapper 接口后,只需要继承 BaseMapper<T> 接口即可获得通用的增删改查功能,无需编写任何接口方法与配置文件条件构造器:通过 EntityWrapper<T> (实体包装类),可

  • SpringBoot整合mybatis-plus快速入门超详细教程

    目录 前言 mybatis-plus 简介 mybatis-plus 优点 相关链接 mybatis-plus实例 1.示例项目结构 2.数据库准备 3.pom.xml: 4.application.yml 5.User.java 6.UserMapper.java 7.UserServiceImpl.java 8.测试类 mybatis-plus的crud: 1.insert操作: 2.select操作: 3.update操作: 4.delete操作: 总结 前言 mybatis-plus 简

  • Java 代码检查工具之PMD入门使用详细教程

    介绍 PMD是一个静态源代码分析器.它发现了常见的编程缺陷,如未使用的变量.空捕获块.不必要的对象创建等等. 官网:点这里 官方文档:点这里 使用方式 1.使用插件的方式 下载:File -> Settings -> Plugins -> Marketplace 搜索 "PMDPlugin" ,下载插件. 使用方法:在代码编辑框或Project 窗口的文件夹.包.文件右键,选择"Run PMD"->"Pre Defined"

  • C/C++ 开发神器CLion使用入门超详细教程

    CLion是Jetbrains公司旗下新推出的一款专为开发C/C++所设计的跨平台IDE,它是以IntelliJ为基础设计的,同时还包含了许多智能功能来提高开发人员的生产力. Clion2020.2.x最新激活码破解版附安装教程(Mac Linux Windows) https://www.jb51.net/article/200548.htm 同样支持python哦,相信使用过IntelliJ idea开发过java的盆友都很清楚该IDE的强大,所以做为Jetbrains旗下的c/c++开发工

  • Tomcat服务器入门超详细教程

    目录 一,Tomcat的一些概念 –1,服务器 –2,web服务器 –3,Tomcat服务器 二,使用Tomcat –1,下载安装 –2,启动&关闭 –3,测试 三,Tomcat目录结构 –1,核心目录 –2,修改默认端口号8080 四,访问自己的项目资源 –1,在webapps中添加自己简单的项目 –2,测试 –3,一个完整的web应用结构 五,在IDEA中整合Tomcat –1,操作如下图 –2,测试 一,Tomcat的一些概念 –1,服务器 服务器:分为服务器硬件和服务器软件.在硬件服务器

  • MyBatis CodeHelperPro激活方法详细教程

    MybatisCodeHelperPro是一款功能强大的插件,可以让IDEA使用Mybatis,帮助用户轻松进行各种程序的编程,提高工作效率,让代码编写更加便捷. 之前给大家介绍过MyBatisCodeHelper-Pro插件破解版详细教程[2.8.2] 插件下载地址 链接: https://pan.baidu.com/s/1bufFKaE3D9vpoQXjhvysyA 提取码: 9pdb 下载完成后解压 在IDEA中本地安装插件 File > Settings >Plugins 找到刚才的解

  • Java持久层框架Mybatis入门详细教程

    mybatis介绍 mybatis它是轻量级持久层框架,由ibatis演化而来.它自动连接数据库,将数据库的结果集封装到对象中POJO. POJO: 一个简单的Java类,这个类没有实现/继承任何特殊的java接口或者类,不遵循任何主要java模型,约定或者框架的java对象.在理想情况下,POJO不应该有注解. JavaBean: JavaBean是可序列化的,实现了serializable接口 具有一个无参构造器 有按照命名规范的set和gett,is(可以用于访问布尔类型的属性)方法 My

  • Fluent Mybatis快速入门详细教程

    使用fluent mybatis可以不用写具体的xml文件,通过java api可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一. 不再需要在Dao中组装查询或更新操作,在xml或mapper中再组装参数.喜欢的朋友可以阅读这篇文章   http://www.jb51.net/article/218884.htm 对底层数据表关联关系的处理,我们总是绕不开什么一对一,一对多,多对多这里比较烦人的关系. 业界优秀的ORM框架也都给出了自己的答案,简单来说就以下几种方式: hibe

  • MyBatis入门学习教程-MyBatis快速入门

    目录 Mybatis 一.快速开始 1.创建 Maven 项目 2.导入 Maven 依赖 3.配置 Maven 插件 4.新建数据库,导入表格 5.编写 Mybatis 配置文件 6.编写实体类 7.编写 mapper 接口 8.编写 mapper 实现 9.Mybatis 配置文件中,添加 mapper 映射 10.编写 Mybatis 工具类 11.测试 二.日志添加 1.添加 Maven 依赖 2.添加 log4j 配置 3.Mybatis 中配置 LOG 4.执行测试 三.Mybati

  • FluentMybatis快速入门详细教程

    使用fluent mybatis可以不用写具体的xml文件,通过java api可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一. 不再需要在Dao中组装查询或更新操作,在xml或mapper中再组装参数. 对底层数据表关联关系的处理,我们总是绕不开什么一对一,一对多,多对多这里比较烦人的关系. 业界优秀的ORM框架也都给出了自己的答案,简单来说就以下几种方式: hibernate和JPA对开发基本屏蔽了底层数据的处理,只需要在model层设置数据级联关系即可.但这种设置也往往

随机推荐