一直想要嘗試自己寫寫筆記,搭搭框架擎宝,搞一套從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.項目搭建
- 啟動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插件
Web->Web
SQL->H2
選擇好依賴包后點擊Next
4.確認項目名稱及路徑無誤赴恨,點擊Finish
因為第一次寫疹娶,所以贅述了一下項目創(chuàng)建過程!SpringBoot的基礎知識本文不作記錄若有需要請參考:SpringBoot知識
創(chuàng)建完成后,項目基本結構如下圖:
- 引入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配置
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菜鳥的第一次學習筆記總結了,若有緣人看到歡迎批評指正,相互學習巢钓,相互進步病苗!