1. 程式人生 > >(五)SpringBoot2.0基礎篇- Mybatis與外掛生成程式碼

(五)SpringBoot2.0基礎篇- Mybatis與外掛生成程式碼

SpringBoot與Mybatis合併

  一、建立SpringBoot專案,引入相關依賴包:

<?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.cn</groupId>
  <artifactId>spring-boot-mybatis</artifactId>
  <version>1.0-SNAPSHOT</version>

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

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.0.1.RELEASE</version>
  </parent>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- mysql 資料庫驅動. -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
    </dependency>

    <!-- spring-boot mybatis依賴 -->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.2</version>
    </dependency>

  </dependencies>

  <build>
    <plugins>
      <!-- 打包外掛 -->
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>

      <plugin>
        <!--Mybatis-generator外掛,用於自動生成Mapper和POJO-->
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.3.2</version>
        <configuration>
          <!--配置檔案的位置-->
          <configurationFile>
            src
/main/resources/mybatis/mybatis-generator.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>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.46</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>

  專案目錄:

  

  二、建立mybatis-generator.xml生成器配置檔案(在lib目錄中放入相應的mysql聯結器mysql-connector-java-5.1.46.jar):

<?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>
    <!-- 資料庫驅動 -->
    <classPathEntry location="./lib/mysql-connector-java-5.1.46.jar"/>

    <context id="DB2Tables" targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自動生成的註釋 true
:是 ; false:否 --> <property name="suppressAllComments" value="true"/> </commentGenerator> <!--資料庫連結URL,使用者名稱、密碼 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.1.121:3306/test?useSSL=false" userId="root" password="admincss"> </jdbcConnection> <!--資料庫連結URL,使用者名稱、密碼 --> <!--<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=FTdevdb02.dafycredit.com)(PORT=1521))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=devdb02)))" userId="wechat" password="Test$20150104"> </jdbcConnection>--> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成模型的包名和位置 --> <javaModelGenerator targetPackage="com.cn.entity" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成對映檔案的包名和位置 --> <sqlMapGenerator targetPackage="mybatis.mapper" targetProject="src/main/resources"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成DAO的包名和位置 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.cn.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成哪些表 --> <table tableName="student" domainObjectName="Student" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> </table> </context> </generatorConfiguration>

  由於上一步已新增相關的外掛依賴,只需在maven管理的plugins中啟動mybatis-generator:

  

  三、建立application.properties、controller、service:

spring.datasource.url=jdbc:mysql://192.168.1.121:3306/test
spring.datasource.username=root
spring.datasource.password=admincss
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#必須配置,否則會找不到對映的xml mybatis.mapper
-locations=classpath:mybatis/mapper/*.xml
package com.cn.controller;

import com.cn.entity.Student;
import com.cn.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @program: spring-boot-example
 * @description:
 * @author:
 * @create: 2018-05-11 10:50
 **/
@RestController
public class StudentController {

    @Autowired
    private StudentService studentService;

    @RequestMapping("/getStudentByKey/{id}")
    public Student getStudentByKey(@PathVariable int id) {
        return studentService.getStudentByPrimaryKey(id);
    }

}
StudentController.java
package com.cn.service;

import com.cn.entity.Student;

/**
 * @program: spring-boot-example
 * @description:
 * @author:
 * @create: 2018-05-11 10:51
 **/

public interface StudentService {

    Student getStudentByPrimaryKey(int id);

}
StudentService.java
package com.cn.service;

import com.cn.entity.Student;
import com.cn.mapper.StudentMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @program: spring-boot-example
 * @description:
 * @author:
 * @create: 2018-05-11 10:55
 **/
@Service
public class StudentServiceImpl implements StudentService{

    @Autowired
    private StudentMapper studentMapper;

    @Override
    public Student getStudentByPrimaryKey(int id) {
        return studentMapper.selectByPrimaryKey(id);
    }
}
StudentServiceImpl.java

  四、在生成的Mapper類中,新增@Mapper註解,目的在於將該Mapper新增進spring容器中或者可以在啟動類中配置@MapperScan掃描範圍:

package com.cn.mapper;

import com.cn.entity.Student;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface StudentMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Student record);

    int insertSelective(Student record);

    Student selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Student record);

    int updateByPrimaryKey(Student record);
}

  五、啟動,測試:

相關推薦

SpringBoot2.0基礎- Mybatis外掛生成程式碼

SpringBoot與Mybatis合併   一、建立SpringBoot專案,引入相關依賴包: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"

SpringBoot2.0基礎- MyBatis、Redis整合JedisCluster叢集連線

一、環境   Redis:4.0.9   SpringBoot:2.0.1 二、SpringBoot整合Redis   1、專案基本搭建:   2、新增maven相關依賴和Redis的連線資訊:     Pom.xml <!-- Redis的依賴庫 -->

5、外匯學習基礎之銀行間外匯掉期交易

3、2015-04-20,機構A和機構B通過外匯交易系統C-Swap功能成交一筆1Y美元兌人民幣掉期交易,成交量為10手,系統自動匹配機構A Offer報價和機構B Bid 報價49.00bp(B先下單)。當時外匯交易系統即期最優賣價為6.1600,則機構A在近端買入USD10,000,000,遠端賣出US

linux常用命令整理:shell基礎

程序猿 逆向 多條 希望 正則表達 group 運行 ls命令 交互式 大家好,我是會唱歌的程序猿~~~~~~ 最近在學習linux,閑暇之余就把這些基本的命令進行了整理,希望大家能用的上,整理的的目的是在忘了的時候翻出來看看^?_?^,前後一共分為五個部分

python3-開發面試題python6.23基礎2

漢字 2個 特殊 問題 ase 第一個 else () 判斷 1、請至少列舉5個 PEP8 規範(越多越好)。 一、代碼編排 1、縮進。4個空格的縮進,不使用Tap,更不能混合使用Tap和空格 2、每行最大長度79,換行可以使用反斜杠,最好使用圓括號。換行點要在操作符

機器學習讀書筆記決策樹基礎之從相親說起

方法 事務 家裏 分類 筆記 判斷 都是 rom tro 一、決策樹 決策樹是什麽?決策樹(decision tree)是一種基本的分類與回歸方法。舉個通俗易懂的例子,如下圖所示的流程圖就是一個決策樹,長方形代表判斷模塊(decision block),橢圓形成代

GO語言學習Go 語言基礎語法

序列 單行 break ani 開頭 ntp false nil div Go 標記 Go 程序可以由多個標記組成,可以是關鍵字,標識符,常量,字符串,符號。如以下 GO 語句由 6 個標記組成: fmt.Println("Hello, World!")

軟考總結---軟體工程基礎知識

前言:下面和大家分享一下第五章的知識點,希望對大家有幫助。 (一)軟體工程概述 1.計算機軟體【分類】(十大類) 系統軟體、應用軟體(解決特定業務需要的獨立應用程式) 工程/科學軟體、嵌入式軟體(控制面向最終使用者和系統本身的特徵和功能) 產品線軟體(多個不同使用者的使用提供

Android NDK網路通訊之本地通訊

Android NDK網路通訊篇(五) 本地通訊篇 前言 在同一個裝置或者同一個APP裡面,我們可以通過LocalSocket來實現本地通訊,比如可以用Java程式碼實現一個本地通訊的C/S架構的程式,也可以用Java程式碼實現客戶端程式碼,用原生程式碼實現服務端程式碼,本

從零開始學jBPM6- BPMN2.0流程編輯

ps: 架構師交流群(QQ群號 304287620) eclipse BPMN2 Modeler外掛 http://www.eclipse.org/bpmn2-modeler/ 上一講在eclipse直接生成例子工程,這一講我們將通過編輯BPMN,手動建立第一個流程

EOSIO開發- 錢包之實戰

通過這篇文章,我們將學習如何通過cleos命令管理錢包。 環境準備 Docker環境: docker pull eosio/eos # 下載映象 docker run --name keosd -t eosio/eos /opt/eosio/bin/keosd

ArcGIS 空間資料庫學習 要素類基礎知識

X,y 容差 建立要素類時,系統將要求您設定 x,y 容差。在拓撲驗證、緩衝區生成、面疊加等聚類操作以及一些編輯操作中,使用 x,y 容差來設定兩個座標之間的最小距離。用於在這些操作過程中確定所有要素座標(結點和折點)間最小距離的 x,y 容差,會影響要素處理操作。按照定義,x,y 容差還定義了座標在聚類操作

C++的基礎知識--Path類、Directory類File類

Path類與Directory類與File類的操作例項 1、Path類: Path 對路徑 字串進行操作獲得字尾,能合併路徑,獲取檔名 using System; using S

webpack實踐- babel的基礎配置和使用

webpack系列部落格中程式碼均在github上:https://github.com/JEmbrace/webpack-practice 《webpack實踐(一)- 先入個門》 《webpack實踐(二)- webpack配置檔案》 《webpack實踐(三)- html-webpack-plug

國家商用password基於SM2的軟件授權碼生成及校驗

clas 信息 ecp register 方法 序列號 mod 生成 pub 將公開密鑰算法作為軟件註冊算法的優點是Cracker非常難通過跟蹤驗證算法得到註冊機。以下。將介紹使用SM2國密算法進行軟件註冊的方法。 生成授權碼 選擇SM2橢圓曲線參數(P,a,b,N,

Vue入門系列Vue實例詳解生命周期

auto res context mode parent all from bool silent 【入門系列】 【本文轉自】   http://www.cnblogs.com/fly_dragon Vue的實例是Vue框架的入口,其實也就是前端的ViewM

聊一聊深Copy淺Copy

otto list int print 技術分享 作用 code height 工廠 一、關於淺copy與深copy 首先說明一下: 在python中,賦值其實就是對象的引用,變量就是對象的一個標簽,如果把內存對象比喻成一個個房間,那麽變量就是門牌號。 深copy與淺

《JVM》內存溢出異常調優

系統 dir 16px round 崩潰 -s 區域 ott 緩沖區 內存溢出異常 除了程序計數器之外,jvm的其他幾個運行時區域都存在著OOM異常的可能性 java堆溢出 對象數量達到最大堆的容量限制後 虛擬機棧和本地方法棧溢出 線程請求的棧深度大於虛擬機所允許的最大

OpenCV學習筆記31KAZE 演算法原理原始碼分析KAZE的原始碼優化及SIFT的比較

  KAZE系列筆記: 1.  OpenCV學習筆記(27)KAZE 演算法原理與原始碼分析(一)非線性擴散濾波 2.  OpenCV學習筆記(28)KAZE 演算法原理與原始碼分析(二)非線性尺度空間構建 3.  Op

吳恩達《神經網路深度學習》課程筆記歸納-- 神經網路基礎之Python向量化

上節課我們主要介紹了邏輯迴歸,以輸出概率的形式來處理二分類問題。我們介紹了邏輯迴歸的Cost function表示式,並使用梯度下降演算法來計算最小化Cost function時對應的引數w和b。通過計算圖的方式來講述了神經網路的正向傳播和反向傳播兩個過程。本節課我們將來