spring-boot+jpa的簡單使用

新手入門HibernateMybatis以及配置繁重的Spring-MVC還有些難度,今天就從實用出發,從零開始搭建一個Spring-Boot+Jpa的服務

什麼是Jpa?

Jpa是Java Persistence API的簡稱。
致力於通過操作對象,執行CURD操作,使開發者從繁重的jdbc和sql中脫離出來的一種規範。
Hibernate ORM框架則是Jpa規範的一種實現
Spring Data Jpa是在Jpa規範的基礎下提供了Repository層的實現

下圖即爲幾種事物之間的關係:

Screen Shot 2018-02-01 at 01.11.05.png

什麼是Spring-Boot?

是一種可以方便集成各種依賴,省去大多數配置文件的自動化框架,可以基於Spring進行快速開發

項目的搭建

首先準備好IDEA
Screen Shot 2018-02-01 at 01.14.18.png

點擊Create New Project

Screen Shot 2018-02-01 at 01.14.58.png

點擊右側的Spring Initalizr,然後點擊Next

Screen Shot 2018-02-01 at 01.16.10.png

Group即爲所在組
Artifact即爲項目名
Type選擇Maven ProjectMaven稍後進行講解
Packaging選擇jar
點擊Next
有的小夥伴一定會有疑問,爲什麼不選擇war
這裏進行說明一下,因爲Spring-boot是一個自帶tomcat的容器,當我們使用tomcat進行部署時,需要將war包放入到/tomcat/webapps進行運行,而Spring-boot則只需要打成jar,java -jar即可運行,是不是很方便?

Screen Shot 2018-02-01 at 01.24.11.png

勾選上右側我所選擇的依賴,然後點擊Next,再點擊Finish,我們的項目就創建完成了

Lombok大家可能還很陌生,這是一個可以極大簡化開發的插件,需要在使用時勾選下圖中右側Enable annotation processing,意思是開啓註解處理,因爲Lombok是基於註解(在類或者方法上進行標記的一種語法)的插件

Screen Shot 2018-02-01 at 01.26.40.png

下面我們打開項目中的pom.xml,如果右下角有提示,可以點擊auto-import,意思爲自動導入依賴包

Screen Shot 2018-02-01 at 01.29.32.png

下面說一下Maven
這是一個十分便捷的依賴管理工具,我們可以通過來直接倒入包,而不用再去網上搜索一個個的jar包
所以大家以後需要什麼依賴可以直接去maven倉庫(https://mvnrepository.com/)
直接複製代碼過來,就可以下載依賴

搜索想要添加的依賴,然後點擊想要的版本號(可以選擇用的人數最多的,即Usages數量最大的)進入
Screen Shot 2018-02-01 at 01.34.01.png

然後複製下圖中Maven裏的代碼到pom.xml中即可
Screen Shot 2018-02-01 at 01.34.09.png

下面就要開始創建我們的MVC架構了
大家可以按照我所建的包(右鍵src/main/java/你的包名,即與Application同目錄, new Package)來進行創建

Screen Shot 2018-02-01 at 01.40.43.png

當然,這些只是最基本的結構,下面配置一下resources裏的application.properties

Screen Shot 2018-02-01 at 01.45.46.png

大家需要把url裏的loginDemo替換成自己創建的db庫名,usernamepassword替換成自己的mysql數據庫的,port爲自定義的運行後的端口號

下面來進行編寫一個簡單的查詢接口

1.我們在utils裏創建一個ResponseMessage,這是用來返回數據時,返回統一格式
Screen Shot 2018-02-01 at 02.11.28.png
這裏的@Data@AllArgsConstructor@NoArgsConstructor都是Lombok插件的註解,代表自動爲實體生成get,set方法,重寫toString()方法,自動生成全參,無參構造函數

2.創建一個和數據庫中的表映射的實體類
Screen Shot 2018-02-01 at 02.11.47.png
@Id@GeneratedValue代表生成表的時候設爲自增主鍵,最後又添加了一個不含有id的構造函數,,因爲不傳id,就代表生成自增id,創建新數據

3.創建一個repository
Screen Shot 2018-02-01 at 02.11.53.png
要繼承JpaRepository,並且泛型傳入User對象
因爲實體中設置了status=0代表正常,所以我們按照status搜出所有正常的User

4.創建一個service
Screen Shot 2018-02-01 at 02.11.55.png
通過@Autowired注入UserRepository進行調用findByStatus()方法

5.創建一個controller
Screen Shot 2018-02-01 at 02.12.03.png
@RequestController內部包含兩個註解@RequestBody和@Controller代表這是一個返回json數據格式的controller
@RequestMapping代表映射,即一會訪問接口時的地址
內部調用service方法的getList()進行返回數據

6.創建test單元測試,用於增加初始數據
Screen Shot 2018-02-01 at 02.08.46.png
這裏Hibernate自動建的表會出現中文亂碼無法插入的錯誤,在varchar的字段後面加上CHARACTER SET ‘utf8’即可解決
Screen Shot 2018-02-01 at 02.25.58.png
然後點擊18行的綠色按鈕。Run Tests即可完成數據初始化

7.去BootJpaApplication點擊第七行綠色按鈕,Run
Screen Shot 2018-02-01 at 02.27.43.png
打開瀏覽器輸入url(http://localhost:8088/user/list)
Screen Shot 2018-02-01 at 02.09.43.png
這樣我們就拿到了數據,一個完整的項目也就搭建完成了

項目的部署

1.在命令行中使用mvn package打成jar包
Screen Shot 2018-02-01 at 02.32.18.png
注意:在運行之前,先將init()中代碼註釋掉,否則會重複創建數據

2.在命令行中使用java -jar target/boot-jpa-0.0.1-SNAPSHOT.jar即可開啓服務,再次訪問http://localhost:8088/user/list
依舊能夠成功獲取數據(開啓服務前不要忘記剛纔通過BootJpaApplication運行的服務)

一個完整的Spring-Boot+Jpa的創建到運行到部署的流程就此全部完成
本人github上放有基於Spring-Boot+Jpa的一個登陸demo,歡迎大家查看
https://github.com/stalary/SpringBootDemo


今天我們耀眼的光芒,不過是明日無人問津的落日餘暉。

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