堅持學習第一天:SpringBoot 2.x整合mybatis-plus 3.1.1

一直想要嘗試自己寫寫筆記,搭搭框架擎宝,搞一套從0到1從頭到尾的知識體系郁妈,卻總是各種原因沒有怎么開始,想起室友貴哥說的绍申,多學多寫噩咪,今天開始嘗試看看,最近朋友圈"各種堅持XXX多少天"极阅,我也來試試N改搿!

本文主要涉及:MySQL 5.x,SpringBoot 2.x,MyBatis-Plus 3.1.1筋搏,Maven 3.x等

1.理論簡介

MyBatis及MyBatis-Plus簡介

  • 【MyBatis簡介】MyBatis 是一款優(yōu)秀的持久層框架仆百,它支持定制化 SQL、存儲過程以及高級映射奔脐。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數(shù)以及獲取結果集俄周。MyBatis 可以使用簡單的 XML 或注解來配置和映射原生類型吁讨、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 對象)為數(shù)據(jù)庫中的記錄峦朗。
  • 【MyBatis-plus簡介】MyBatis-Plus(簡稱 MP)是一個 MyBatis 的增強工具建丧,在 MyBatis 的基礎上只做增強不做改變,為簡化開發(fā)甚垦、提高效率而生茶鹃。

SpringBoot簡介

  • Spring Boot讓您更簡單的創(chuàng)建基于Spring的獨立的涣雕,生產(chǎn)級的可運行“應用程序”艰亮。 對于Spring平臺和第三方庫,我們采取一種“強制性”的觀點挣郭,以至于您可以更加輕松的開始使用迄埃。 大部分Spring Boot應用程序只需要一點點Spring的配置即可。

IDEA開發(fā)工具簡介

  • IDEA兑障,全稱 IntelliJ IDEA侄非,是 Java 語言的集成開發(fā)環(huán)境,IDEA 在業(yè)界被公認為是最好的 java 開發(fā)工具之一流译,尤其在智能代碼助手逞怨、代碼自動提示、重構福澡、J2EE支持叠赦、Ant、JUnit革砸、CVS 整合除秀、代碼審查、創(chuàng)新的 GUI 設計等方面的功能可以說是超常的算利。

Maven簡介

Maven 翻譯為"專家"册踩、"內(nèi)行",是 Apache 下的一個純 Java 開發(fā)的開源項目效拭≡菁基于項目對象模型(縮寫:POM)概念,Maven利用一個中央信息片斷能管理一個項目的構建缎患、報告和文檔等步驟借笙。

Maven 是一個項目管理工具,可以對 Java 項目進行構建较锡、依賴管理业稼。

Maven 也可被用于構建和管理各種項目,例如 C#蚂蕴,Ruby低散,Scala 和其他語言編寫的項目俯邓。Maven 曾是 Jakarta 項目的子項目,現(xiàn)為由 Apache 軟件基金會主持的獨立 Apache 項目

2.軟件安裝

系統(tǒng)說明:window 10,Java,Apache Maven 3.5.0,SpringBoot 2.1.5(Idea默認) ,H2(一個開源的熔号、純java實現(xiàn)的關系數(shù)據(jù)庫)稽鞭,MyBatis-plus 3.1.1

3.項目搭建

  1. 啟動IDEA,選擇:File->new->Project,在彈窗中選擇Spring Initializr,如下圖:
    圖 3-1 創(chuàng)建項目

    基本上都默認選中引镊,點擊Next
    2.根據(jù)個人習慣和規(guī)范輸入Group,Artifact設置Package等朦蕴,第一次搭建可以直接默認,點擊****Next***弟头,如下圖:
    圖 3-2 設置項目包信息

3.設置依賴包吩抓,在彈窗中可以根據(jù)需要設置依賴包,這里我暫時只選擇:Core->Lombok(使用Lombok記得要安裝Idea插件

圖 3-3-1 選擇依賴包

Web->Web

圖 3-3-2 選擇依賴包

SQL->H2

圖 3-3-3 選擇依賴包

選擇好依賴包后點擊Next

4.確認項目名稱及路徑無誤赴恨,點擊Finish

圖 4-1完成創(chuàng)建

因為第一次寫疹娶,所以贅述了一下項目創(chuàng)建過程!SpringBoot的基礎知識本文不作記錄若有需要請參考:SpringBoot知識
創(chuàng)建完成后,項目基本結構如下圖:

項目結構圖

  1. 引入MyBatis-Plus伦连,打開項目maven配置文件pom.xml雨饺,添加MyBatis-Plus依賴:
  <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.1</version>
</dependency>

6.配置myabtis-plus,修改默認的application.properties為application.yml(個人習慣使用yml配置),添加數(shù)據(jù)庫的配置與mybatis-plus配置


application.yml配置
MybatisPlusConfig.java

7.然后創(chuàng)建對應得model(我放在了domain目錄),Mapper惑淳,service额港,及Controller具體見代碼,

  • User.java
package com.cooper.module.user.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 用戶信息
 */
@Data
public class User {

    @TableId(value = "id",type = IdType.ID_WORKER)
    private Long id;

    @TableField("name")
    private String name;

    @TableField("age")
    private Integer age;

    @TableField("email")
    private String email;

    @TableField("create_time")
    private LocalDateTime createTime;
}
  • UserMapper.java
package com.cooper.module.user.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cooper.module.user.domain.User;

public interface UserMapper extends BaseMapper<User> {
}
  • IUserService.java 和 UserServieImpl.java
package com.cooper.module.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cooper.module.user.domain.User;

public interface IUserService extends IService<User> {
}

/** ------------------------------------------------------------------------------------------**/

package com.cooper.module.user.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cooper.module.user.domain.User;
import com.cooper.module.user.mapper.UserMapper;
import com.cooper.module.user.service.IUserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Transactional
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {

} 
  • UserController.java
package com.cooper.module.user.controller;

import com.cooper.module.user.domain.User;
import com.cooper.module.user.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private IUserService userService;


    @RequestMapping("/list")
    @ResponseBody
    public List<User> listOfUser(){
        return userService.list();
    }
} 

太晚了不寫明細了歧焦,后續(xù)完善移斩。
從上面我們可以MP帶來了好處就是基本的單表操作是可以不寫任何SQL與Dao層代碼的,甚至如果不涉及復雜業(yè)務的連service也省了【有人可能就會說JPA不就是這樣的嗎倚舀?其實我不是很清楚叹哭,JPA用的不多,個人只是覺得mybatis更靈活點痕貌,而mp正如它的描述风罩,只做增強不做改變,為簡化開發(fā)舵稠、提高效率而生超升,解放你的雙手。

????當然他們肯定是各有優(yōu)勢的哺徊,根據(jù)自己的需求選擇室琢,適合自己的才是最好的
????啟動后可以查看SpringBoot及MybatisPlus對應日志版本信息;

項目啟動

附上簡單查詢所有接口效果:


簡單的查詢接口

第一次寫諸多不完善的地方望見諒落追,主要做為學習筆記記錄盈滴,最后附上項目代碼地址
以上就是作為一個JAVA菜鳥的第一次學習筆記總結了,若有緣人看到歡迎批評指正,相互學習巢钓,相互進步病苗!

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市症汹,隨后出現(xiàn)的幾起案子硫朦,更是在濱河造成了極大的恐慌,老刑警劉巖背镇,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咬展,死亡現(xiàn)場離奇詭異,居然都是意外死亡瞒斩,警方通過查閱死者的電腦和手機破婆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來济瓢,“玉大人荠割,你說我怎么就攤上這事妹卿⊥” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵夺克,是天一觀的道長箕宙。 經(jīng)常有香客問我,道長铺纽,這世上最難降的妖魔是什么柬帕? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮狡门,結果婚禮上陷寝,老公的妹妹穿的比我還像新娘。我一直安慰自己其馏,他們只是感情好,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著烦却,像睡著了一般家厌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上褐奥,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天咖耘,我揣著相機與錄音,去河邊找鬼撬码。 笑死儿倒,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的呜笑。 我是一名探鬼主播夫否,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼找筝,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了慷吊?” 一聲冷哼從身側響起袖裕,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎溉瓶,沒想到半個月后急鳄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡堰酿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年疾宏,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片触创。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡坎藐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出哼绑,到底是詐尸還是另有隱情岩馍,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布抖韩,位于F島的核電站蛀恩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茂浮。R本人自食惡果不足惜双谆,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望席揽。 院中可真熱鬧顽馋,春花似錦、人聲如沸幌羞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽新翎。三九已至程帕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間地啰,已是汗流浹背愁拭。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留亏吝,地道東北人岭埠。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親惜论。 傳聞我的和親對象是個殘疾皇子许赃,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355