Spring boot操作mysql数据库

/

软硬件环境

  • macOS Sierra
  • java 1.8.0_65
  • maven 3.5.0
  • idea 2017.1.5

前言

前面一篇http://xugaoxiang.com/post/12已经搭建好了spring boot的开发环境并且完成了第一个Hello world程序,本文紧接着上篇的内容,开始数据库相关的知识点。

工程相关配置

pom.xml

在dependencies标签下增加依赖,一个是spring data jpa,另一个是mysql

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-jpa</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>mysql</groupId>
  7. <artifactId>mysql-connector-java</artifactId>
  8. </dependency>
application.properties

在这个配置文件中需要写上mysql的驱动、服务器地址、端口、数据库名称、用户名、密码等信息。

  1. spring.datasource.dbcp2.driver-class-name=com.mysql.jdbc.Driver
  2. spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dbvcms
  3. spring.datasource.username=root
  4. spring.datasource.password=djstava
  5. spring.jpa.hibernate.ddl-auto=update
  6. spring.jpa.show-sql=true

其中spring.jpa.hibernate.ddl-auto=update表示操作数据库时,所有的操作都是更新操作,这里还可以取值create、create-drop等值

spring data jpa

spring data jpa操作mysql数据库非常简单,简单到什么程度?根本不需要你创建任何表以及表的各个字段。这个有点像ORM(对象关系映射)。眼见为实,下面就看看具体实现步骤。

创建实体类

这里的实体类是指欲操作对象,包含它的各种属性,对应到数据中的各个字段。

LiveChannel.java

  1. package com.xugaoxiang;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import javax.persistence.Entity;
  4. import javax.persistence.Id;
  5. /**
  6. * Created by djstava on 10/09/2017.
  7. */
  8. @Entity
  9. public class LiveChannel {
  10. @Id
  11. @Autowired
  12. private Integer id;
  13. // 频道名称中文
  14. private String name_chn;
  15. // 频道名称英文
  16. private String name_eng;
  17. // 频道url
  18. private String url;
  19. // 频道是否需要播放广告
  20. private Boolean hasAds;
  21. public String getName_chn() {
  22. return name_chn;
  23. }
  24. public void setName_chn(String name_chn) {
  25. this.name_chn = name_chn;
  26. }
  27. public String getName_eng() {
  28. return name_eng;
  29. }
  30. public void setName_eng(String name_eng) {
  31. this.name_eng = name_eng;
  32. }
  33. public String getUrl() {
  34. return url;
  35. }
  36. public void setUrl(String url) {
  37. this.url = url;
  38. }
  39. public Boolean getHasAds() {
  40. return hasAds;
  41. }
  42. public void setHasAds(Boolean hasAds) {
  43. this.hasAds = hasAds;
  44. }
  45. }

上面实体类包含直播频道的一些信息。

接口实现

创建LiveChannelRepository.java,继承自JpaRepository,其中的Interger表示的是id的数据类型

  1. package com.xugaoxiang;
  2. import org.springframework.data.jpa.repository.JpaRepository;
  3. /**
  4. * Created by djstava on 10/09/2017.
  5. */
  6. public interface LiveChannelRepository extends JpaRepository<LiveChannel,Integer> {
  7. }
操作数据库

创建LiveController,这里设计了一个RestfulAPI,/live,返回的是数据库中所以的直播列表。

  1. package com.xugaoxiang;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. import java.util.List;
  6. /**
  7. * Created by djstava on 10/09/2017.
  8. */
  9. @RestController
  10. public class LiveController {
  11. public LiveController() {
  12. }
  13. @Autowired
  14. private LiveChannelRepository liveChannelRepository;
  15. @GetMapping(value = "/live")
  16. public List<LiveChannel> getLiveChannel() {
  17. return liveChannelRepository.findAll();
  18. }
  19. }

创建数据库

如上配置信息所示,创建数据库dbvcms

jpa_01

这里我们是没有去创建表结构的,启动工程的话,jpa会自动帮你把表创建好,各个字段的信息就来自于文件LiveChannel.java

为了方便查询,我们添加2条记录,如下所示

jpa_02

测试

一切准备就绪,启动项目,在浏览器中输入

  1. http://localhost:8080/live

jpa_03

转载请注明作者和出处,并添加本页链接。
原文链接: blog.xugaoxiang.com/13

给我留言