軟硬件環(huán)境
-
macos sierra
-
java 1.8.0_65
-
maven 3.5.0
-
idea 2017.1.5
前言
前面一篇已經(jīng)搭建好了spring boot的開發(fā)環(huán)境并且完成了第一個Hello world程序,本文緊接著上篇的內(nèi)容,開始數(shù)據(jù)庫相關(guān)的知識點。
工程相關(guān)配置
pom.xml
在dependencies標(biāo)簽下增加依賴,一個是spring data jpa,另一個是mysql
<p style="margin-bottom: 7px;"><dependency><br> ? ?<groupid>org.springframework.boot</groupid><br> ? ?<artifactid>spring-boot-starter-data-jpa</artifactid></dependency><dependency><br> ? ?<groupid>mysql</groupid><br> ? ?<artifactid>mysql-connector-java</artifactid></dependency><br></p>
application.properties
在這個配置文件中需要寫上mysql的驅(qū)動、服務(wù)器地址、端口、數(shù)據(jù)庫名稱、用戶名、密碼等信息。
spring.datasource.dbcp2.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.0.1:3306/dbvcms spring.datasource.username=root spring.datasource.password=djstava spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true
其中spring.jpa.hibernate.ddl-auto=update表示操作數(shù)據(jù)庫時,所有的操作都是更新操作,這里還可以取值create、create-drop等值
spring data jpa
spring data jpa操作mysql數(shù)據(jù)庫非常簡單,簡單到什么程度?根本不需要你創(chuàng)建任何表以及表的各個字段。這個有點像ORM(對象關(guān)系映射)。眼見為實,下面就看看具體實現(xiàn)步驟。
創(chuàng)建實體類
這里的實體類是指欲操作對象,包含它的各種屬性,對應(yīng)到數(shù)據(jù)中的各個字段。
LiveChannel.java
package?com.xugaoxiang;import?org.springframework.beans.factory.annotation.Autowired;import?javax.persistence.Entity;import?javax.persistence.Id;/** ?*?Created?by?djstava?on?10/09/2017. ?*/@Entitypublic?class?LiveChannel?{ ????@Id ????@Autowired ????private?Integer?id;????//?頻道名稱中文 ????private?String?name_chn;????//?頻道名稱英文 ????private?String?name_eng;????//?頻道url ????private?String?url;????//?頻道是否需要播放廣告 ????private?Boolean?hasAds;????public?String?getName_chn()?{????????return?name_chn; ????}????public?void?setName_chn(String?name_chn)?{????????this.name_chn?=?name_chn; ????}????public?String?getName_eng()?{????????return?name_eng; ????}????public?void?setName_eng(String?name_eng)?{????????this.name_eng?=?name_eng; ????}????public?String?getUrl()?{????????return?url; ????}????public?void?setUrl(String?url)?{????????this.url?=?url; ????}????public?Boolean?getHasAds()?{????????return?hasAds; ????}????public?void?setHasAds(Boolean?hasAds)?{????????this.hasAds?=?hasAds; ????} }
上面實體類包含直播頻道的一些信息。
接口實現(xiàn)
創(chuàng)建LiveChannelRepository.java,繼承自JpaRepository,其中的Interger表示的是id的數(shù)據(jù)類型
package?com.xugaoxiang; import?org.springframework.data.jpa.repository.JpaRepository;/** ?*?Created?by?djstava?on?10/09/2017. ?*/public?interface?LiveChannelRepository?extends?JpaRepository<livechannel>?{}</livechannel>
操作數(shù)據(jù)庫
創(chuàng)建LiveController,這里設(shè)計了一個RestfulAPI,/live,返回的是數(shù)據(jù)庫中所以的直播列表。
package?com.xugaoxiang;import?org.springframework.beans.factory.annotation.Autowired;import?org.springframework.web.bind.annotation.GetMapping;import?org.springframework.web.bind.annotation.RestController;import?java.util.List;/** ?*?Created?by?djstava?on?10/09/2017. ?*/@RestControllerpublic?class?LiveController?{ ????public?LiveController()?{ ????}????@Autowired ????private?LiveChannelRepository?liveChannelRepository;????@GetMapping(value?=?"/live")????public?List<livechannel>?getLiveChannel()?{????????return?liveChannelRepository.findAll(); ????} }</livechannel>
創(chuàng)建數(shù)據(jù)庫
如上配置信息所示,創(chuàng)建數(shù)據(jù)庫dbvcms
這里我們是沒有去創(chuàng)建表結(jié)構(gòu)的,啟動工程的話,jpa會自動幫你把表創(chuàng)建好,各個字段的信息就來自于文件LiveChannel.java
為了方便查詢,我們添加2條記錄,如下所示
測試
一切準(zhǔn)備就緒,啟動項目,在瀏覽器中輸入
http://localhost:8080/live