springboot整合mybatis-plus3.0-beta

聲明

這只是一個基本springboot整合mybatis-plus3.0-beta的例子,包含springboot搭建、整合mybatis-plus3.0-beta,以及遇到的坑。

springboot

關於sprintboot的介紹太多了,用我的話概述就是快速構建項目,搭建常規SSM你可能需要30分鐘及以上,用springboot你只要5分鐘。

mybatis-plus作用

mybatis-plus3.0-beta可以提供通用dao層、通用service層、分頁功能,並提供代碼生成器。單表可以快速生成後臺mapper、service、serviceImpl、空的controller類。

搭建springboot項目

我用的是eclispe,也沒有裝插件,所以通用這個網址生成springboot項目。springboot嚮導
這裏寫圖片描述
點擊Switch back to the simple version.
這裏寫圖片描述
勾選web,然後下載該項目。
下載完成後解壓,通過import-import-maven-exist maven projects導入
這裏寫圖片描述
導入完成後目錄結構如下:
這裏寫圖片描述
創建目錄,創建TestController,用於測試SpringMVC是否成功。

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @RequestMapping("test")
    public String test() {
        return "Hello springboot!";
    }
}

這裏寫圖片描述

啓動項目:打開ZyApplication.java類,右鍵Run as-java Application,出現Started ZyApplication in 3.508 seconds (JVM running for 3.964)表示成功。當然項目不一樣名稱就不一樣,不必糾結。
打開瀏覽器:http://localhost:8080/test,成功訪問。
這裏寫圖片描述
這裏你會發現和以往訪問不一樣,因爲不用輸入項目名,怎麼使用http://ip:port/projectName方式訪問呢?

帶項目名訪問

將application.properties修改成application.yml,當然你用properties也可以,這裏我使用yml文件。內容如下:

server: 
    servlet: 
        context-path: /springboot

這裏寫圖片描述
重啓,再次訪問:http://localhost:8080/springboot/test,訪問成功。
這裏寫圖片描述
那麼問題來了,每次改重啓好麻煩,能熱部署嗎?能。

熱部署支持

打開pom.xml文件,添加熱部署支持

<!-- 熱部署支持. -->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
     <optional>true</optional>
 </dependency>

這裏寫圖片描述
打開application.yml,添加熱部署配置

spring:
    devtools: 
        restart: 
            enabled: true

這裏寫圖片描述
再次重啓,重啓完你再修改java文件你會發現項目會自動部署而不用重啓。

使其支持jsp

打開pom.xml,添加相關jar包
這裏寫圖片描述
打開application.yml,添加jsp相關配置,並創建相關目錄及test.jsp。
這裏寫圖片描述
修改TestController爲如下內容,使其跳到對應的test.jsp,並在test.jsp中取出test的值顯示。

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController {

    @RequestMapping("test")
    public String test(Model model) {
        model.addAttribute("test", "jsp測試");
        return "contest/test";
    }
}

創建test.jsp,路徑如下方圖片所示。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test</title>
</head>
<body>
    ${test}
</body>
</html>

這裏寫圖片描述
打開瀏覽器,訪問http://localhost:8080/springboot/test,成功顯示。(如果這裏提示404,請手動重新啓動即可)
這裏寫圖片描述

加入mybatis

創建數據庫springboot,執行下面的sql語句

DROP TABLE IF EXISTS `sys_admin`;

CREATE TABLE `sys_admin` (
  `id` varchar(64) NOT NULL COMMENT 'PK',
  `username` varchar(50) NOT NULL COMMENT '用戶名',
  `password` varchar(64) NOT NULL COMMENT '密碼',
  `status` int(1) NOT NULL COMMENT '狀態',
  `salt` varchar(64) NOT NULL COMMENT '加密字符',
  `head_img` text COMMENT '頭像',
  `create_time` datetime NOT NULL COMMENT '創建時間',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

/*Data for the table `sys_admin` */

insert  into `sys_admin`(`id`,`username`,`password`,`status`,`salt`,`head_img`,`create_time`) values 
('1','root','root',1,'1',NULL,'2018-07-17 15:18:56');

打開pom.xml,添加mybatis和mysql的jar包,如下內容

<!-- springboot mybatis -->
<!-- 該包是mybatis爲springboot提供的包 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
</dependency>

<!-- mysql -->
<!-- mysql這個包不用寫版本,springboot會自動查找 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<!-- druid連接池 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.0</version>
</dependency>

完整的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-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.houpu</groupId>
    <artifactId>zy</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

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

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </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>
        <!-- mvc支持. -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- test. -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- 熱部署支持. -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- tomcat的支持.-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- 支持jstl -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <!-- springboot mybatis -->
        <!-- 該包是mybatis爲springboot提供的包 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

        <!-- mysql -->
        <!-- mysql這個包不用寫版本,springboot會自動查找 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- druid連接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

創建下面文件,各文件所在位置如下:
這裏寫圖片描述
SysAdminMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.houpu.zy.module.contest.mapper.SysAdminMapper">

    <resultMap id="BaseResultMap" type="com.houpu.zy.module.contest.entity.SysAdmin">
        <id column="id" property="id" />
        <result column="username" property="username" />
        <result column="password" property="password" />
        <result column="status" property="status" />
        <result column="salt" property="salt" />
        <result column="head_img" property="headImg" />
        <result column="create_time" property="createTime" />
    </resultMap>

    <select id="selectSysAdmin" resultMap="BaseResultMap">
        select * from sys_admin
    </select>
</mapper>

SysAdminMapper.java

package com.houpu.zy.module.contest.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.houpu.zy.module.contest.entity.SysAdmin;

@Mapper
public interface SysAdminMapper {

    /**
     * 查詢所有sysAdmin記錄
     * @return
     */
    List<SysAdmin> selectSysAdmin();
}

ISysAdminService.java

package com.houpu.zy.module.contest.service;

import java.util.List;

import com.houpu.zy.module.contest.entity.SysAdmin;

public interface ISysAdminService {

    /**
     * 查詢所有sysAdmin記錄
     * @return
     */
    List<SysAdmin> selectSysAdmin();
}

SysAdminServiceImpl.java

package com.houpu.zy.module.contest.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.houpu.zy.module.contest.entity.SysAdmin;
import com.houpu.zy.module.contest.mapper.SysAdminMapper;
import com.houpu.zy.module.contest.service.ISysAdminService;

@Service
public class SysAdminServiceImpl implements ISysAdminService {

    @Autowired
    private SysAdminMapper sysAdminMapper;

    @Override
    public List<SysAdmin> selectSysAdmin() {
        return sysAdminMapper.selectSysAdmin();
    }

}

SysAdmin.java

package com.houpu.zy.module.contest.entity;

import java.io.Serializable;

/**
 *
 * @author huahao
 * @since 2018-07-17
 */
public class SysAdmin implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * PK
     */
    private String id;
    /**
     * 用戶名
     */
    private String username;
    /**
     * 密碼
     */
    private String password;
    /**
     * 狀態
     */
    private Integer status;
    /**
     * 加密字符
     */
    private String salt;
    /**
     * 頭像
     */
    private String headImg;
    /**
     * 創建時間
     */
    private String createTime;


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getSalt() {
        return salt;
    }

    public void setSalt(String salt) {
        this.salt = salt;
    }

    public String getHeadImg() {
        return headImg;
    }

    public void setHeadImg(String headImg) {
        this.headImg = headImg;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return "SysAdmin{" +
        ", id=" + id +
        ", username=" + username +
        ", password=" + password +
        ", status=" + status +
        ", salt=" + salt +
        ", headImg=" + headImg +
        ", createTime=" + createTime +
        "}";
    }
}

TestController.java

package com.houpu.zy.module.contest.web;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.houpu.zy.module.contest.entity.SysAdmin;
import com.houpu.zy.module.contest.service.ISysAdminService;

@Controller
public class TestController {

    @Autowired
    private ISysAdminService sysAdminService;

    @RequestMapping("test")
    public String test(Model model) {
        model.addAttribute("test", "jsp測試");
        return "contest/test";
    }

    @RequestMapping("user")
    public String user(Model model) {
        List<SysAdmin> SysAdminList = sysAdminService.selectSysAdmin();
        model.addAttribute("SysAdminList", SysAdminList);
        return "contest/user";
    }
}

打開application.yml,添加數據庫配置:

    datasource:
        name: mydb
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://127.0.0.1:3306/springboot
        username: root
        password: root
        driver-class-name: com.mysql.jdbc.Driver
        minIdle: 1
        maxActive: 2
        initialSize: 1
        timeBetweenEvictionRunsMillis: 3000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 'ZTM' FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false   
mybatis:
    typeAliasesPackage: com.houpu.zy.module.contest.entity
    mapperLocations: classpath:mappers/**/*.xml           

完整的application.yml如下

server: 
    servlet: 
        context-path: /springboot

spring:
    devtools: 
        restart: 
            enabled: true
            exclude: /views/**
    mvc: 
        view: 
            prefix: /views/module/
            suffix: .jsp
    datasource:
        name: mydb
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://127.0.0.1:3306/springboot
        username: root
        password: root
        driver-class-name: com.mysql.jdbc.Driver
        minIdle: 1
        maxActive: 2
        initialSize: 1
        timeBetweenEvictionRunsMillis: 3000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 'ZTM' FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false   

mybatis:
    typeAliasesPackage: com.houpu.zy.module.contest.entity
    mapperLocations: classpath:mappers/**/*.xml  

user.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test</title>
</head>
<body>
    <table>
       <c:forEach items="${SysAdminList}" var="user">
           <tr>
               <td>${user.username }</td>
               <td>${user.status }</td>
               <td>${user.password }</td>
               <td>${user.salt }</td>
               <td>${user.headImg }</td>
           </tr>
       </c:forEach>
    </table>
</body>
</html>

至此已經集成mybatis,並編寫了一個例子。打開瀏覽器訪問:http://localhost:8080/springboot/user
結果如下:
這裏寫圖片描述
以上項目代碼可從這裏下載:
鏈接: https://pan.baidu.com/s/10UBxUM-bufTUDwnhvApOmw 密碼: eg5d

使用mybatis-plus重構項目

  1. 刪除文件service、serviceImpl、mapper.java、mapper.xml、entity。
  2. 將pom中的mybatis包改成mybatis-plus的包
  3. 去掉application.yml文件中mybatis的配置(不去也不影響),加入mybatis-plus配置。
  4. 新增CodeGeneration.java(從mybatis-plus官網有這個類)
  5. 運行CodeGeneration.java並將生成的文件放入項目中
  6. 默認的dao層接口文件中並沒有@mapper註解,這裏有2種方式,第一種是在每個*mapper.java中加入@mapper註解,第二種是寫個config類來掃描mapper.java,上面集成mybatis時你們看到我使用的是第一種,這裏我推薦使用第二種,這裏生成的代碼不需要改動就能用了。
  7. 新增步驟6說的第二種配置類:MybatisPlusConfig.java
  8. 編寫controller代碼,測試通過。

step1、刪除文件service、serviceImpl、mapper.java、mapper.xml、entity等文件

這個沒啥好說的,跳過了。

step2、將pom中的mybatis包改成mybatis-plus的包

將原來的mybatis依賴的jar包刪除掉,即在pom.xml中刪掉下面內容

<!-- springboot mybatis -->
        <!-- 該包是mybatis爲springboot提供的包 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>

在末尾加上

<!-- mybatis-plus -->
        <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>3.0-beta</version>
         </dependency>

step3、去掉application.yml文件中mybatis的配置(不去也不影響),加入mybatis-plus配置

在application.yml文件末尾加上以下內容:

#mybatis-plus
mybatis-plus:
    mapper-locations: classpath:mappers/**/*.xml
    #實體掃描,多個package用逗號或者分號分隔
    typeAliasesPackage: com.houpu.zy.module.contest.entity
    global-config: 
      db-config: 
        #刷新mapper 調試神器
        #主鍵類型  0:"數據庫ID自增", 1:"用戶輸入ID",2:"全局唯一ID (數字類型唯一ID)", 3:"全局唯一ID UUID";
        id-type: 3
        #字段策略 0:"忽略判斷",1:"非 NULL 判斷"),2:"非空判斷"
        field-strategy: not_empty
        #駝峯下劃線轉換
        column-underline: true
        #數據庫大寫下劃線轉換
        #capital-mode: true
        #邏輯刪除配置
        logic-delete-value: 0
        logic-not-delete-value: 1
        db-type: mysql
        #自定義填充策略接口實現
        #meta-object-handler: com.baomidou.springboot.xxx
        #自定義SQL注入器
        #sql-injector: com.baomidou.springboot.xxx
    configuration: 
        map-underscore-to-camel-case: true
        cache-enabled: false
    ##logging
    logging:
      level: debug 

step4、新增CodeGeneration.java(從mybatis-plus官網有這個類)

下面生成的文件路徑請自行修改

package com.houpu.zy;

import com.baomidou.mybatisplus.annotation.DbType;
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.rules.NamingStrategy;

public class CodeGeneration {

    /**
     * 
     * @Title: main
     * @Description: 生成
     * @param args
     */
    public static void main(String[] args) {
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        gc.setOutputDir("C:\\Users\\huahao\\Desktop\\新建文件夾");
        gc.setFileOverride(true);
        gc.setActiveRecord(false);// 不需要ActiveRecord特性的請改爲false
        gc.setEnableCache(false);// XML 二級緩存
        gc.setBaseResultMap(true);// XML ResultMap
        gc.setBaseColumnList(false);// XML columList
        gc.setAuthor("huahao");// 作者

        // 自定義文件命名,注意 %s 會自動填充表實體屬性!
        gc.setControllerName("%sController");
        gc.setServiceName("%sService");
        gc.setServiceImplName("%sServiceImpl");
        gc.setMapperName("%sMapper");
        gc.setXmlName("%sMapper");
        mpg.setGlobalConfig(gc);

        // 數據源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setDbType(DbType.MYSQL);
        dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        dsc.setUrl("jdbc:mysql://127.0.0.1:3306/springboot");
        mpg.setDataSource(dsc);

        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setTablePrefix(new String[] { "" });// 此處可以修改爲您的表前綴
        strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
        strategy.setInclude(new String[] { "sys_admin" }); // 需要生成的表

        strategy.setSuperServiceClass(null);
        strategy.setSuperServiceImplClass(null);
        strategy.setSuperMapperClass(null);

        mpg.setStrategy(strategy);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("com.houpu.zy.module.contest");
        pc.setController("web");
        pc.setService("service");
        pc.setServiceImpl("service.impl");
        pc.setMapper("mapper");
        pc.setEntity("entity");
        pc.setXml("xml");
        mpg.setPackageInfo(pc);

        // 執行生成
        mpg.execute();

    }

}

step5、step6跳過不講,直接看step7生成的類

在com.houpu.zy.module.contest目錄下新建config目錄。
然後在config目錄下新建如下類:

package com.houpu.zy.module.contest.config;

import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;

@Configuration
//@MapperScan("com.houpu.zy.module.*.mapper*")//這個註解,作用相當於下面的@Bean MapperScannerConfigurer,2者配置1份即可
public class MybatisPlusConfig {

    /**
     * mybatis-plus分頁插件<br>
     * 文檔:http://mp.baomidou.com<br>
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

    /**
     * 相當於頂部的:
     * {@code @MapperScan("com.houpu.springboot.module.*.mapper*")}
     * 這裏可以擴展,比如使用配置文件來配置掃描Mapper的路徑
     */
    @Bean
    public MapperScannerConfigurer mapperScannerConfigurer() {
        MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer();
        scannerConfigurer.setBasePackage("com.houpu.zy.module.*.mapper*");
        return scannerConfigurer;
    }

}

step8、編寫controller代碼,測試通過。

修改SysAdminController.java內容如下:

package com.houpu.zy.module.contest.web;


import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.houpu.zy.module.contest.entity.SysAdmin;
import com.houpu.zy.module.contest.service.SysAdminService;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author huahao
 * @since 2018-07-18
 */
@Controller
@RequestMapping("/sysAdmin")
public class SysAdminController {

    @Autowired
    private SysAdminService sysAdminService;

    @RequestMapping("user")
    public String user(Model model) {
        Wrapper<SysAdmin> wrapper = new QueryWrapper<SysAdmin>();
        List<SysAdmin> SysAdminList = sysAdminService.selectList(wrapper);
        model.addAttribute("SysAdminList", SysAdminList);
        return "contest/user";
    }
}

啓動項目,瀏覽器訪問:http://localhost:8080/springboot/sysAdmin/user,成功顯示。
至此,springboot集成mybatis-plus完成。

基於mybatis-plus的項目代碼在下方網盤
鏈接: https://pan.baidu.com/s/1MTrqZm-H30f1S6H5K9gdsg 密碼: ttw5

總結

全文共講述了3個階段的變化

  1. springboot
  2. springboot+mybatis
  3. springboot+mybatis-plus

其中,到第二階段已經是ssm框架都集成了.
第三階段中mybatis-plus已經包含mybatis的包,並擴展了通用dao、通用service、分頁、代碼生成器。
全文較長,但是是從第一步一點點增加上來的,大家可以看到每次新增的配置或代碼是做什麼用的,網上大多數教程都是貼代碼或者貼部分代碼,導致繞每多彎路,相信我這個教程還算是不錯的。

最後,我本人也是在學習springboot、springcloud中,畢竟早就已經到了分佈式時代了。
作者:默非默,QQ:3094759846

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章