如何使用Spring boot操作mysql數(shù)據(jù)庫

軟硬件環(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

如何使用Spring boot操作mysql數(shù)據(jù)庫

這里我們是沒有去創(chuàng)建表結(jié)構(gòu)的,啟動工程的話,jpa會自動幫你把表創(chuàng)建好,各個字段的信息就來自于文件LiveChannel.java

為了方便查詢,我們添加2條記錄,如下所示

如何使用Spring boot操作mysql數(shù)據(jù)庫

測試

一切準(zhǔn)備就緒,啟動項目,在瀏覽器中輸入

http://localhost:8080/live

如何使用Spring boot操作mysql數(shù)據(jù)庫

如何使用Spring boot操作mysql數(shù)據(jù)庫

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊8 分享