zoukankan      html  css  js  c++  java
  • springboot

    springboot集成mybatisplus

    介绍:

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

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

    一、创建项目

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

    二、引入依赖

    复制代码


    4.0.0

    <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>
    
    复制代码 三、编辑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

    复制代码

    <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>
    
    复制代码 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来实现,在我的第二篇博客中有讲到http://www.cnblogs.com/caichaoqi/p/8580521.html

    运行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还有一个强大的分页功能,如果有兴趣也可以去学习http://mp.baomidou.com

    (源码下载地址:https://github.com/caicahoqi/ChaoqiIsPrivateLibrary)

  • 相关阅读:
    【Uvalive4960】 Sensor network (苗条树,进化版)
    【UVA 1151】 Buy or Build (有某些特别的东东的最小生成树)
    【UVA 1395】 Slim Span (苗条树)
    【UVA 10600】 ACM Contest and Blackout(最小生成树和次小生成树)
    【UVA 10369】 Arctic Network (最小生成树)
    【UVA 10816】 Travel in Desert (最小瓶颈树+最短路)
    【UVA 11183】 Teen Girl Squad (定根MDST)
    【UVA 11865】 Stream My Contest (二分+MDST最小树形图)
    【UVA 11354】 Bond (最小瓶颈生成树、树上倍增)
    【LA 5713 】 Qin Shi Huang's National Road System (MST)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/8689022.html
Copyright © 2011-2022 走看看