MyBatis-Plus框架整合详细方法

目录
  • MyBatis-Plus
  • 其特性有:
  • 引入依赖
  • yml配置
  • 主启动类加上包扫码
  • 自动生产代码接口util
  • 扩展

MyBatis-Plus

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

其特性有:

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 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、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  • 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

支持的数据库有:

  • mysql 、 mariadb 、 oracle 、 db2 、 h2 、 hsql 、 sqlite 、 postgresql 、 sqlserver
  • 达梦数据库 、 虚谷数据库 、 人大金仓数据库

官网

引入依赖

        <!--mybatis-plus-boot-starter 包含了mybatis的所有依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.28</version>
        </dependency>
                <!--推荐大家使用阿里巴巴的druid的连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.8</version>
        </dependency>
        <!--引入mysql数据库相关依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>

yml配置

spring:
  application:
    name: manage-client
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/mysql?userSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
    username: root
    password: ys@2017
  main:
    allow-circular-references: true

#mybatis-plus配置
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath:com/huangyabei/mapper/xml/*.xml

主启动类加上包扫码

@SpringBootApplication(scanBasePackages = {"com.win.sky"})
@MapperScan(basePackages="com.win.sky.dao")
@EnableDiscoveryClient
public class SaasAdminApplication {
    public static void main(String[] args) {
        SpringApplication.run(SaasAdminApplication.class, args);
    }
}

自动生产代码接口util

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import java.util.Arrays;
import java.util.List;

public class MyBatisPlusGenerate {

    public static void main(String[] args) {

        //创建generator对象:通过操作这个对象来生成代码
        AutoGenerator autoGenerator = new AutoGenerator();
        //数据源:建立数据源与数据库连接
        DataSourceConfig dataSourceConfig = new DataSourceConfig();
        dataSourceConfig.setDbType(DbType.MYSQL);//选择数据库的类型
        //数据源
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
        //账号
        dataSourceConfig.setUsername("root");
        //密码
        dataSourceConfig.setPassword("ys@2017");
        //连接地址
        dataSourceConfig.setUrl("jdbc:mysql://192.168.10.77:3306/yszh_gw?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai");
        autoGenerator.setDataSource(dataSourceConfig);
        //全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir("D:/generatingCode/test/main/java");//放到子工程里,修改了路径  //这里个人建议经历不要直接放在公司项目里面,避免覆盖已经写好的代码,
        globalConfig.setAuthor("yszh-gw");
        globalConfig.setOpen(false);
        globalConfig.setServiceName("%sService");
        autoGenerator.setGlobalConfig(globalConfig);
        //包信息
        PackageConfig packageConfig = new PackageConfig();
        packageConfig.setParent("com.win.sky.news");
        packageConfig.setEntity("entity");
        packageConfig.setMapper("mapper");
        packageConfig.setService("service");
        packageConfig.setServiceImpl("service.impl");
        packageConfig.setController("controller");
        autoGenerator.setPackageInfo(packageConfig);
        //策略配置
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setInclude("t_test","t_order");//有新的表往里面加就是了
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略驼峰命名
        strategyConfig.setTablePrefix(packageConfig.getModuleName() + "t_");//生成实体时去掉表前缀
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
        strategyConfig.setEntityLombokModel(true);
        TableFill tableFill = new TableFill("create_time", FieldFill.INSERT);
        TableFill tableFill1 = new TableFill("update_time", FieldFill.INSERT_UPDATE);
        List<TableFill> tableFills = Arrays.asList(tableFill,tableFill1);
        strategyConfig.setTableFillList(tableFills);
        autoGenerator.setStrategy(strategyConfig);
        //运行
        autoGenerator.execute();
    }

}

扩展

mybatis-plus在使用过程中类似JPA框架

自定义接口继承了mybatis-plus框架提供的这个IService接口之后,基本的CRUD方法都可以直接使用

Mybatis-plus提供了分页查询方法

Page<TenantVo> page = new Page<>(pageNum,pageSize);

MyBatis-plus提供的条件拼接对象

QueryWrapper<TenantVo> qw = new QueryWrapper<>();

自定义sql查询
在实际开发过程中,可能涉及到多表复杂查询,简单的sql已经不适合使用,这样的情况下,我们可以通过自定义sql配合QueryWrapper条件拼接对象使用

        SELECT md.id,
               md.name,
               md.menus_id,
               md.coding,
               md.data_id,
               md.remark,
               md.create_by,
               md.create_time,
               md.update_by,
               md.update_time,
               d.name dataName,
               d.rule
                 FROM t_menus_data md
                 LEFT JOIN t_data_permission d on d.id = md.data_id
--下面的代码就是用例接收服务层传过来的拼接的条件参数
        <where>
            ${ew.sqlSegment}
        </where>

mapper层

    IPage<MenusDataEntity> pageVo(@Param("page") IPage<MenusDataEntity> page, @Param(Constants.WRAPPER) QueryWrapper<MenusDataEntity> qw);

service层

        IPage<MenusDataEntity> page = new Page<>(pageNum,pageSize);
        QueryWrapper<MenusDataEntity> qw = new QueryWrapper<>();
        // 查询添加环节筛选需求
        qw.eq("md.menus_id",menusId);
        if (!StrUtil.isEmpty(name)){
            qw.like("md.name",name);
        }
        IPage<MenusDataEntity> menusDataEntityIPage = menusDataMapper.pageVo(page,qw);

到此这篇关于MyBatis-Plus框架整合的文章就介绍到这了,更多相关MyBatis-Plus框架整合内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Mybatis或Mybatis-Plus框架的xml文件中特殊符号的使用详解

    在Mybatis的xml文件中,很多特殊符号是无法直接使用的,需要使用实体引用,假如在 XML 文档中放置了一个类似 "<" 字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始. 原符号.实体引用.CDATA对照表 号.实体引用.CDATA对照表 原符号 实体引用 CDATA 说明 < < <![CDATA[ < ]]> 小于 <= <= <![CDATA[ <= ]]> 小于等于 > >

  • 使用IDEA配置Mybatis-Plus框架图文详解

    本文是以使用IDEA配置Mybatis-Plus框架作为简单的讲解. 所涉及到的应用: IDEA2019 Mybatis-Plus框架 Mysql数据库 Maven3.6.3 jdk1.8 一.什么是Mybatis-Plus框架? MyBatis-Plus(简称MP)是一个MyBatis的增强工具,提供给我们很多实用的插件.在Mybatis的基础上只做增强不做改变,为简化我们开发,提高工作效率而生. 二.Mybatis有些什么特性? 无侵入:MyBatis-Plus是在MyBatis的基础上增强

  • 搭建MyBatis-Plus框架并进行数据库增删改查功能

    搭建MyBatis-Plus框架并进行数据库添加 MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 1.搭建环境 Jdk:jdk1.8.0_261 Idea:IntelliJ IDEA Maven:apache-maven-3.3.6 MySQL:mysql-5.5.61 2.项目搭建 3.配置maven 4.项目结构 创建数据库 CREATE DATABASE tzy03; USE tzy03;

  • SpringBoot框架中Mybatis-plus的简单使用操作汇总

    Mybatis-plus 官网地址:https://baomidou.com/ 配置mysql 在配置文件连接mysql spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/cat_house?serverTimezone=GMT%2B8 spring.datasource.username=username spring.da

  • MyBatis-Plus框架整合详细方法

    目录 MyBatis-Plus 其特性有: 引入依赖 yml配置 主启动类加上包扫码 自动生产代码接口util 扩展 MyBatis-Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 其特性有: 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作:内置通用 Mapper.通用

  • Spring+SpringMVC+MyBatis整合详细教程(SSM)

    使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些.以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下.这次,先说说三大框架整合过程.个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助.不过,如果用都不会,谈思想就

  • Spring SpringMVC,Spring整合MyBatis 事务配置的详细流程

    整合思路 (1)SSM是什么? Spring,SpringMVC,Mybastis (2)思路 搭建整合的环境,初始化环境 搭建Spring环境,配置完成并测试 (service层) 再使用Spring整合MyBatis框架,并测试(Dao层) 最后使用Spring整合SpringMVC框架,并测试(web层) SSM搭建环境 (1)数据库创建ssm (2)创建maven工程 (3)git (创建.gitignore来过滤不用提交的文件) (4)依赖框架 (5)log4j.properties

  • 从零搭建SpringBoot2.X整合Redis框架的详细教程

    最近也不知道写啥,看之前写过Kafka整合Springboot的文章,大家反响还挺热烈的,嘿嘿嘿,就感觉帮助到大家了还挺好的,也算是达到了自己的目的,正好,今天业务模块是springboot整合redis,因为之前做过,所以有现成的代码,cv一下之后就可以了,所以时间比较多,那就给大家整理一下Springboot整合Redis的代码实现吧,从项目搭建到源码实现,下面全都有,耐心看完,相信会对你有所帮助的 好了,话不多说,我们开始吧,同样的,还是建议能够自己在自己的PC端实现一下 个人公众号:Ja

  • SSM框架整合之Spring+SpringMVC+MyBatis实践步骤

    1.基本概念 1.1.Spring Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅限于服务器端的开发.从简单性.可测试性和松耦合的角度而言,任何Java应用都可以从Spr

  • SpringBoot框架整合Mybatis简单攻略

    目录 步骤 1 添加mybatis-starter依赖 步骤 2 如何配置mybatis到SpringBoot项目 步骤 3 测试查询 步骤 4 mybatis注解方式 步骤 5 用注解方式做一个新增操作 步骤 6 整合PageHelper分页插件 步骤 7 拓展知识:mybatis四种传参方式 步骤 8 Mybatis中#{}和${}的区别是什么? 步骤 9 Mybatis中模糊查询like语句该怎么写? 步骤 10 SpringBoot整合Mybatis-plus 步骤 11 Mybatis

  • 使用IDEA搭建SSM框架的详细教程(spring + springMVC +MyBatis)

    1 框架组成 Spring SpringMVC MyBatis 2 所需工具 Mysql 8.0.15 ​数据库管理系统,创建数据库 Tomcat 8.5.51 ​用于部署web项目 Maven 3.6.1 ​项目构建.项目依赖管理 lombok 1.18.10(可用可不用工具) ​用于类注解创建setter.getter.无参构造.全参构造.toString等函数 ​注:只导入依赖,不安装插件是不起作用的 3 搭建步骤 3.1 新建一个空Maven项目,填写项目相关信息,完成 3.2 添加we

  • Spring整合SpringMVC + Mybatis基础框架的配置文件详解

    前言 新建一个普通的Maven项目 基本目录结构 ├── src # │ ├── main # │ │ └── java # java代码目录 │ │ └── resources # 配置文件目录, 存放下面Spring配置文件 │ ├── test # 单元测试目录 ├── web # web目录 │ └── WEB-INF # web.xml 配置文件目录 1. Mybatis层编写 1.在 resources 目录下新建数据库配置文件 database.properties jdbc.dr

  • thinkPHP5框架整合plupload实现图片批量上传功能的方法

    本文实例讲述了thinkPHP5框架整合plupload实现图片批量上传功能的方法.分享给大家供大家参考,具体如下: 在官网下载plupload http://http//www.plupload.com 或者点击此处本站下载. 这里我们使用的是pluploadQueue 在HTML页面引入相应的css和js,然后根据示例代码修改为自己的代码 <link rel="stylesheet" href="/assets/plupupload/css/jquery.plupl

  • spring与mybatis三种整合方法

    1.采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean. spring-mybatis.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3

随机推荐