springboot集成mybatisplus的方法

介绍:

Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。(摘自mybatis-plus官网)Mybatis虽然已经给我们提供了很大的方便,但它还是有不足之处,MP的存在就是为了稍稍弥补Mybatis的不足。在我们使用Mybatis时会发现,每当要写一个业务逻辑的时候都要在DAO层写一个方法,再对应一个SQL,即使是简单的条件查询、即使仅仅改变了一个条件都要在DAO层新增一个方法,针对这个问题,MP这样一个框架,一种集Mybatis与Hibernate的优点一起的框架。它提供了Hibernate的单表CURD操作的方便同时,又保留了Mybatis的特性。

本章只教大家怎么使用MybatisPlus,如果想深入了解底层是怎么实现的可以去官网下载源代码进行解读。

一、创建项目

  这里就不一步一步来了,我直接给出创建后的项目结构,在本章的最后我会给出源码地址需要看效果的可以进行下载。

二、引入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>

 <groupId>com.chaoqi</groupId>
 <artifactId>springboot_mybatisplus</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>

 <name>springboot_mybatisplus</name>
 <description>Demo project for Spring Boot</description>

 <parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.0.0.RELEASE</version>
  <relativePath/>
 </parent>

 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
 </properties>

 <dependencies>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jdbc</artifactId>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
   <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>1.3.2</version>
  </dependency>

  <dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <scope>runtime</scope>
  </dependency>
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
  </dependency>
  <!--添加jsp依赖 -->
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
  </dependency>
  <dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-jasper</artifactId>
  </dependency>
  <!-- SpringBoot - MyBatis 逆向工程 -->
  <dependency>
   <groupId>org.mybatis.generator</groupId>
   <artifactId>mybatis-generator-core</artifactId>
   <version>1.3.2</version>
  </dependency>

  <!-- MyBatis 通用 Mapper -->
  <dependency>
   <groupId>tk.mybatis</groupId>
   <artifactId>mapper-spring-boot-starter</artifactId>
   <version>1.1.4</version>
  </dependency>
 </dependencies>

 <build>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
   <plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.2</version>
    <configuration>
     <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
     <verbose>true</verbose>
     <overwrite>true</overwrite>
    </configuration>
    <executions>
     <execution>
      <id>Generate MyBatis Artifacts</id>
      <goals>
       <goal>generate</goal>
      </goals>
     </execution>
    </executions>
    <dependencies>
     <dependency>
      <groupId>org.mybatis.generator</groupId>
      <artifactId>mybatis-generator-core</artifactId>
      <version>1.3.2</version>
     </dependency>
     <dependency>
      <groupId>tk.mybatis</groupId>
      <artifactId>mapper</artifactId>
      <version>3.5.0</version>
     </dependency>
    </dependencies>
   </plugin>
  </plugins>
 </build>

</project>

三、编辑application.yml

server:
 port: 8080

spring:
 mvc:
 view:
  prefix: /WEB-INF/jsp/
  suffix: .jsp
 datasource:
 url: jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&useUnicode=true&useSSL=false
 username: root
 password: 123456
 driver-class-name: com.mysql.jdbc.Driver

mybatis:
 mapper-locations: classpath:mapper/*.xml
 type-aliases-package: com.chaoqi.springboot_mybatisplus.domain

四、逆向生成pojo,mapper

创建generatorConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

<generatorConfiguration>

 <properties resource="application.yml"/>
 <classPathEntry location="D:/mysql/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar"/>
 <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
  <property name="beginningDelimiter" value="`"/>
  <property name="endingDelimiter" value="`"/>
  <property name="javaFileEncoding" value="UTF-8"/>
  <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
   <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
  </plugin>
  <!-- 注释 -->
  <commentGenerator>
   <!-- 是否生成注释代时间戳 -->
   <property name="suppressDate" value="true"/>
   <!-- 是否去除自动生成的注释 true:是 : false:否 -->
   <property name="suppressAllComments" value="false"/>
  </commentGenerator>
  <!-- JDBC连接 -->
  <jdbcConnection
    driverClass="com.mysql.jdbc.Driver"
    connectionURL="jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8"
    userId="root"
    password="123456">
  </jdbcConnection>
  <!-- 生成实体类地址 -->
  <javaModelGenerator targetPackage="com.chaoqi.springboot_mybatisplus.dao.domain" targetProject="src/main/java"/>
  <!-- 生成mapper xml文件 -->
  <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
  <!-- 生成mapper xml对应Client-->
  <javaClientGenerator targetPackage="com.chaoqi.springboot_mybatisplus.dao.mapper" targetProject="src/main/java"
        type="XMLMAPPER"/>
  <!-- 配置表信息 -->
  <table tableName="%">
   <!--mysql 配置-->
   <generatedKey column="id" sqlStatement="Mysql"/>
   <!--oracle 配置-->
   <!--<generatedKey column="id" sqlStatement="select SEQ_{1}.nextval from dual" identity="false" type="pre"/>-->
  </table>
 </context>
</generatorConfiguration>

maven运行generator

生成完后的项目结构如下

五、整合mybatisplus

创建service接口以及service实现类

package com.chaoqi.springboot_mybatisplus.service;

import com.chaoqi.springboot_mybatisplus.dao.domain.MusicInfo;
import java.util.List;
public interface MusicInfoService {
 public List<MusicInfo> getMusicInfo();
}
package com.chaoqi.springboot_mybatisplus.service.impl;

import com.chaoqi.springboot_mybatisplus.dao.domain.MusicInfo;
import com.chaoqi.springboot_mybatisplus.dao.mapper.MusicInfoMapper;
import com.chaoqi.springboot_mybatisplus.service.MusicInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class MusicInfoServiceImpl implements MusicInfoService {

 @Autowired
 private MusicInfoMapper musicInfoMapper;

 @Override
 public List<MusicInfo> getMusicInfo() {
  List<MusicInfo> musicInfos = musicInfoMapper.selectAll();
  return musicInfos;
 }
}

创建Controller

package com.chaoqi.springboot_mybatisplus.web;

import com.chaoqi.springboot_mybatisplus.dao.domain.MusicInfo;
import com.chaoqi.springboot_mybatisplus.service.MusicInfoService;
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
@RequestMapping(value = "/music")
public class MusicInfoController {

 @Autowired
 private MusicInfoService musicInfoService;

 @RequestMapping("/showMusic")
 public List<MusicInfo> getMusicInfo() {
  List<MusicInfo> musicInfo1 = musicInfoService.getMusicInfo();
  return musicInfo1;
 }

}

这里我的mapper并不要写sql,一些简单的sqlmybatiplus都给封装好了,节省了许多开发时间,如果是一些复杂的sql,也可以通过写原生sql来实现,在我的第二篇博客中有讲到springboot+springmvc+mybatis项目整合

运行SpringbootMybatisplusApplication主函数

package com.chaoqi.springboot_mybatisplus;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.chaoqi.springboot_mybatisplus.dao.mapper")
public class SpringbootMybatisplusApplication {

 public static void main(String[] args) {
  SpringApplication.run(SpringbootMybatisplusApplication.class, args);
 }
}

查看数据库

下面给出mybatisplus封装的一些方法,这些方法具体怎么使用,感兴趣的小伙伴可以查看下源代码,mybatisplus还有一个强大的分页功能,如果有兴趣也可以去这里学习

(源码下载地址

最后谢谢大家的观看,写博客经验不足,写得不好请见谅

(0)

相关推荐

  • spring boot整合mybatis+mybatis-plus的示例代码

    Spring boot对于我来说是一个刚接触的新东西,学习过程中,发现这东西还是很容易上手的,Spring boot没配置时会默认使用Spring data jpa,这东西可以说一个极简洁的工具,可是我还是比较喜欢用mybatis,工具是没有最好的,只有这合适自己的. 说到mybatis,最近有一个很好用的工具--------mybatis-Plus(官网),现在更新的版本是2.1.2,这里使用的也是这个版本.我比较喜欢的功能是代码生成器,条件构造器,这样就可以更容易的去开发了. mybatis

  • SpringBoot整合MybatisPlus的简单教程实现(简单整合)

    最近在研究springboot,顺便就会看看数据库连接这一块的知识 ,所以当我发现有通用Mapper和MybatisPlus这两款网络上比较火的简化mybatis开发的优秀软件之后.就都想试一下,看看哪一款比较适合自己. 先创建一个springboot的项目,可以参考我之前的文章Spring Boot 的简单教程(一) Spring Boot 项目的创建. 创建好springboot之后就需要整合mybatis和mybatis-plus了. 打开pom.xml文件,将最新的mybatis相关的包

  • SpringBoot整合MyBatisPlus配置动态数据源的方法

    MybatisPlus特性 •无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 •损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 •强大的 CRUD 操作:内置通用 Mapper.通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 •支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 •支持多种数据库:支持 MySQL.MariaDB.Ora

  • SpringBoot整合MyBatis-Plus3.1教程详解

    一.说明 Mybatis-Plus是一个Mybatis框架的增强插件,根据官方描述,MP只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑.并且只需简单配置,即可快速进行 CRUD 操作,从而节省大量时间.代码生成,分页,性能分析等功能一应俱全,最新已经更新到了3.1.1版本了,3.X系列支持lambda语法,让我在写条件构造的时候少了很多的"魔法值",从代码结构上更简洁了. 二.项目环境 MyBatis-Plus版本: 3.1.0 SpringBoot版本:2.1.5 JDK

  • SpringBoot Mybatis Plus公共字段自动填充功能

    一.应用场景 平时在建对象表的时候都会有最后修改时间,最后修改人这两个字段,对于这些大部分表都有的字段,每次在新增和修改的时候都要考虑到这几个字段有没有传进去,很麻烦.mybatisPlus有一个很好的解决方案.也就是公共字段自动填充的功能.一般满足下面条件的字段就可以使用此功能: 这个字段是大部分表都会有的. 这个字段的值是固定的,或则字段值是可以在后台动态获取的. 常用的就是last_update_time,last_update_name这两个字段. 二.配置MybatisPlus 导包:

  • 详解Spring boot上配置与使用mybatis plus

    http://mp.baomidou.com/#/?id=%e7%ae%80%e4%bb%8b这个是mybatisplus的官方文档,上面是mybtisplus的配置使用方法,以及一些功能的介绍 下面开始配置 maven依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <

  • springboot集成mybatisplus实例详解

    集成mybatisplus后,简单的CRUD就不用写了,如果没有特别的sql,就可以不用mapper的xml文件的. 目录 pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta

  • springboot集成mybatisplus的方法

    介绍: Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发.提高效率而生.(摘自mybatis-plus官网)Mybatis虽然已经给我们提供了很大的方便,但它还是有不足之处,MP的存在就是为了稍稍弥补Mybatis的不足.在我们使用Mybatis时会发现,每当要写一个业务逻辑的时候都要在DAO层写一个方法,再对应一个SQL,即使是简单的条件查询.即使仅仅改变了一个条件都要在DAO层新增一个方法,针对这个问题,MP这样

  • springboot集成mybatisPlus+多数据源的实现示例

    该项目主要实现mybatisplus.多数据源.lombok.druid的集成 主要参考 https://mp.baomidou.com/guide/quick-start.html 项目地址:https://github.com/Blankwhiter/mybatisplus-springboot release1.0 项目结构: 一.创建表以及测试数据 CREATE TABLE user ( id VARCHAR(32) NOT NULL COMMENT '主键ID', name VARCH

  • SpringBoot集成Mybatis-plus并实现自动生成相关文件的示例代码

    Mybatis-Plus是一个优秀的Mybatis增强工具,目前更新到3.1.1.Mybatis-Plus原生提供了很多单表操作的方法,极大简化了繁琐的curd的操作,同时又支持xml配置.自定义sql的编写.这篇文章介绍SpringBoot2集成Mybatis-Plus 3.1.0,同时介绍mybatis提供MysqlGenerator.java,你可以通过指定的数据库表生成对应的bean.mapper.xml.mapper.java.service.java.serviceImpl.java

  • SpringBoot集成MybatisPlus报错的解决方案

    这篇文章主要介绍了SpringBoot集成MybatisPlus报错的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 问题 启动的时候总是报如下错误: java.lang.annotation.AnnotationFormatError: Invalid default: public abstract java.lang.Class 解决方案 需要一个mybatis-spring-boot-starter的包,在pom文件加上之后,完

  • SpringBoot集成Swagger2的方法

    一.是什么 当下很多公司都采取前后端分离的开发模式,前端和后端的工作由不同的工程师完成.在这种开发模式下,维持一份及时更新且完整的 Rest API 文档将会极大的提高我们的工作效率.传统意义上的文档都是后端开发人员手动编写的,相信大家也都知道这种方式很难保证文档的及时性,这种文档久而久之也就会失去其参考意义,反而还会加大我们的沟通成本.而 Swagger 给我们提供了一个全新的维护 API 文档的方式. 二.为什么要使用它 1.代码变更,文档跟着代码变.只需要少量的注解Swagger就可以根据

  • SpringBoot集成SpringMVC的方法示例

    Spring MVC是一款优秀的.基于MVC思想的应用框架,它是Spring的一个子框架.是当前最优秀的MVC框架. Spring Boot整合Spring MVC只需在pom.xml中引入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.3.7.RE

  • 使用SpringBoot集成redis的方法

    今天,日月在这里教大家如何使用springBoot集成redis,说实话比较简单,网上也有大把的教程.先套用一下网上的简介. 定义 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 它通常被称为数据结构服务器,因为值(value)可以是 字符串(S

  • SpringBoot集成Mybatis-Plus多租户架构实现

    目录 一. 什么是多租户 二. 多租户架构以及数据隔离方案 1. 独立数据库 2. 共享数据库,独立 Schema 3. 共享数据库,共享 Schema,共享数据表 三.多租户架构适用场景? 四. 技术实现 正式进入主题 1. 创建Spring Boot项目 2. 单元测试 目前公司产品就是对外企业服务,入职后了解到SaaS模式和私有部署,当我第一次听到SaaS时,我不是很理解.经过查阅资料,以及在后续研发功能时,不断的加深了对多租户的理解. 那么接下来让我们问自己几个问题: 1.什么是多租户架

  • springboot集成Swagger的方法(让你拥有属于自己的api管理器)

    很多朋友问小编springboot项目中怎么集成Swagger呢? swagger世界上最好的api管理工具 前言 我们为什么要使用api管理工具?在大型的项目中,如果你有非常多的接口需要统一管理,或者需要进行接口测试,那么我们通常会在繁杂地api中找到需要进行测试或者管理的接口.当然,我们可以使用postman或者谷歌浏览器自带的api Talend api Tester . 但是这些工具往往只是对单个接口进行测试管理,是我们主动去人为管理的,那么为了减轻管理测试的人力成本,swagger便应

  • springboot集成mybatis-plus遇到的问题及解决方法

    在使用spring boot集成mybatis-plus的过程中遇到的问题 如图, 首先我放xml的包的是没问题的,而是引入的架包和配置问题,问题配置如下 解决方法:请将mybatis-plus改成mybatis,mybatis,mybtis,重要的说三遍,必要的架包如下 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring- boot-start

随机推荐