idea 搭建 SpringBoot 集成 mybatis


 

 

 

編譯器:IDEA2018.2.3

環境:win10,jdk1.8,maven3.4

數據庫:mysql 5.7

備注:截圖較大,如果看不清,可以在圖片上右鍵=》在新標簽頁中打開   查看高清大圖哦╮(╯▽╰)╭

一、打開IDEA新建項目

1. 如果你是第一次使用IDEA,那么你需要配置你本地的maven,點擊右下角 Configure,如已配置請忽略此步驟

在下拉框中選擇setting,然后如下圖操作,選擇自己本地的maven路徑與maven配置文件

點擊OK

2.新建項目

點擊Create New Project 后,彈出如下界面,選擇Spring Initializer,然后可以使用編譯器自帶的JDK,也可以點擊New,新建並使用自己本地目錄下的JDK環境

當然你也可以選擇Maven,使用Maven搭建自己的環境,但相信我,前者更為便捷

 

完成上述步驟,選擇JDK之后,點擊next,如下圖

這里會提示我們輸入一些項目信息,那么作為初學者,顯然我們沒有必要去較勁,請直接next,之后如下圖

這里會為你准備許多開發時你需要用到的組件供你挑選,你盡管挑選你可能會用到的組件,然后打勾✔,編譯器會在幫你創建項目時,在pom文件中替你寫好這些組件需要用到的jar包,很貼心,有點小感動

如果你只是構建一個SpringBoot,你可以什么都不選直接跳過這一步

由於后期我們要集成mybatis,所以我們勾選mybatis

由於我們的數據庫是mysql 5.7,那么我們要勾選mysql

勾選完成后點擊next,如下圖

此處提示我們輸入一些工程信息,那么,作為初學者,點擊next就好,不要在意這些細節...

點擊之后效果如圖,請點擊右下角Enable Auto-Import ,允許編譯器在你改變pom文件后自動導入包,另外,左側顯示的三處不必要的文件和文件夾可以刪除,如圖所示

完成上述步驟之后,項目結構及pom文件如下圖

 

 至此一個SpringBoot項目構建完成,我們可以編寫一個小小的demo來測試SpringBoot

3.SpringBoot 測試

首先在pom文件中添加如下依賴(非常重要的一個依賴)

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

 由於我們暫時沒有實體類與jdbc連接,所以我們必須要將pom文件中有關mysql與mybatis的pom依賴注釋掉,如圖

 

在demo包下,新建controller包,並新建一個類GirlFriendController,程序員有對象真的很容易啊,隨手就能new一個...代碼如下

package com.example.demo.controller;

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

@RestController
public class GirlFriendController {
    
    @RequestMapping("/getgirlfriend")
    public String getGirlFriend(){
        return "No way ...";
    }
}

如圖

 

 然后我們找到編譯器為我們生成的主類,或者叫入口類,然后點擊運行main方法,如圖

 

 項目成功啟動后,我們在瀏覽器輸入  http://localhost:8080/getgirlfriend ,就能返回結果(此處不需要輸入項目名稱)

至此,SpringBoot框架搭建成功,下一步就是整合mybatis

4.整合mybatis

將我們之前注釋掉的pom文件中的依賴放開,將注意力轉至mysql數據庫與mybatis上

首先,使用navcat打開mysql數據庫並建立一張表girlfriend

 

 我們插入一條測試數據

 

 女神艾莉絲,19歲好吧,各位紳士,建表及測試數據腳本如下

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for girlfriend
-- ----------------------------
DROP TABLE IF EXISTS `girlfriend`;
CREATE TABLE `girlfriend`  (
  `id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `age` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of girlfriend
-- ----------------------------
INSERT INTO `girlfriend` VALUES ('1', 'Alice', '19');

SET FOREIGN_KEY_CHECKS = 1;

好的,那么表數據准備完成,下一步准備根據mysql的表實現mybatis相關內容

我們使用工具來生成

工具下載地址 https://pan.baidu.com/s/1RvwKlsmpKJQ_PJkuNjiPdw

下載后解壓,解壓后進入 Mybatis\mybatis-generator-core-1.3.2\lib 目錄,如圖所示

點擊進入src目錄,刪除src目錄下的全部文件(這是上次使用產生的實體類與xml,我們不需要)

編輯 generatorConfig.xml

 

 編輯完成generatorConfig.xml后,打開啟動命令.txt,復制其中第一行或第二行命令,反正都一樣...

然后點擊cmd.exe

然后輸入命令,如圖,運行后提示成功信息

 

打開cmd.exe同目錄下的src目錄,我們會發現下面多了一些東西,如圖

 

 沒錯,他們就是這款工具幫我們生成的實體類,dao類,與xml文件

接下來我們在項目目錄中新建相應的包、文件夾,並將工具幫我們生成的類與文件拷貝至IDEA新建的包或文件夾中

拷貝完成之后的項目結構如下圖所示

 

 然后,我們刪除IDEA幫我們創建的 application.properties ,新建 application.yml,如圖

 

配置代碼如下

mybatis:
typeAliasesPackage: com.xdd.entity
mapperLocations: classpath:mapping/*.xml

spring:
datasource:
url: jdbc:mysql://localhost:3306/test
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver

我們新建一個service包與service類,如圖

 

代碼如下

package com.example.demo.service;

import com.example.demo.dao.GirlfriendMapper;
import com.example.demo.entity.Girlfriend;
import org.springframework.beans.factory.annotation.Autowired;
@Service public class GirlFriendService { @Autowired private GirlfriendMapper girlfriendMapper; public Girlfriend getGirlFriendById(String id){ return girlfriendMapper.selectByPrimaryKey(id); } }

  


然后我們再改造一下 GirlFriendController ,如圖

 

 

代碼如下
package com.example.demo.controller;

import com.example.demo.entity.Girlfriend;
import com.example.demo.service.GirlFriendService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class GirlFriendController {

    @Autowired
    private GirlFriendService girlFriendService;

    @RequestMapping("/getgirlfriend")
    public Girlfriend getGirlFriend(@Param("id") String id){

        Girlfriend girlfriend = girlFriendService.getGirlFriendById(id);

        return girlfriend;
    }
}

 

 這時我們看到注入的  girlFriendService 在報錯,我們打開編譯器 file -》Project Structure -》Facets -》Spring ,然后將Spring(demo) 直接右鍵刪除,確定,報錯就解決了



然后我們再編輯入口類 DemoApplication ,添加掃描路徑,代碼如下
package com.example.demo;

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

@SpringBootApplication
@MapperScan("com.example.demo.dao")
public class DemoApplication {

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

}

  至此大功告成,我們啟動項目,在瀏覽器中輸入 http://localhost:8080/getgirlfriend?id=1 ,就在此時,不料報錯。。。。。。

Caused by: com.mysql.cj.exceptions.InvalidConnectionAttributeException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_25]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_25]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_25]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:408) ~[na:1.8.0_25]

  百度才知道這是mysql時區設置問題啊,美帝太壞了...

打開mysql命令行輸入 

show variables like '%time_zone%'  

set global time_zone='+8:00';  

如圖 ,搞定

再次在瀏覽器中輸入 http://localhost:8080/getgirlfriend?id=1 ,效果如圖

 

 啊哈~大功告成

至此SpringBoot+mybatis框架搭建完成,希望大家多多點贊多多評論

純手打,也希望轉載能注明出處,感激不盡

由於本人實在困得不行...所以刪除、新增與修改的重任,交給各位紳士....good night            o(* ̄▽ ̄*)ブ


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM