一、背景
上一篇文章,介绍了怎样搭建一个web微服务,通过硬编码的方式,可以实现自建API服务,但静态API,逼格肯定不够高,欲穷千里目,更上一层楼。这篇文章讲 SpringBoot 读写MySQL数据库。
二、环境准备
JAVA、Gradle、git、MYSQL。
MYSQL环境稍麻烦一点,还要在本地装MYSQL,简单一点,索性直接去买一个吧。比如:西部数码,80块钱,买一年,想学习嘛,就要舍得下本。购买后,可以得到以下几个内容:地址、数据库名、用户名、密码。

舍不得花钱,也可以在自己的机器上装mysql。MAC安装MYSQL。
三、开始用Spring boot 读取MYSQL,参考文档
老样子,执行下方命令: 截图如下:git clone https://github.com/spring-guides/gs-accessing-data-mysql.git

然后用IDEA 导入 工程截图如下:

继续一路OK下去,等待同步。
示例工程中,文件中,增加了对MYSQL操作的依赖build.gradle

然后我们修改 文件,修改为刚购买的MYSQL数据库网址,数据库和用户名。application.properties

然后启动服务!!!是的,没错,我们又可以直接开车了。执行命令: 截图如下./gradlew bootRun

然后访问: 向数据库中添加一条记录http://localhost:8080/demo/add?name=ssevening&email=ssevening@gmail.com

再访问: 得到如下提示:http://localhost:8080/demo/all

发现也成功了。
再登陆到数据库中去查看:

不知道你没有注意到以下两个问题:
- 数据库表结构是什么创建的?他怎么知道要创建什么表?
- 我是怎么知道要访问 add 和 all 网址的?
四、开始解答
- 数据库表结构是什么创建的?他怎么知道要创建什么表?
Android开发中,常会用到GreenDao,然后根据实体体去生成创建表的语句,这里也是通过读取注册,直接操作DB执行建表操作。实体类截图如下:

然后 上面 即代表在运行时,根据POJO类自动创建数据库表结构。application.properties` 中的 `spring.jpa.hibernate.ddl-auto=create
对于客户端而言,省去了什么?省去了你去写建表语句,做得绝一点,你直接声明好POJO类,启动一次创建好相应的表结构,再把 create 的值改为none,后面就专心写你的业务就可以了。
- 我是怎么知道要访问 add 和 all 网址的?
启动时,Spring boot 启动日志告诉我们,映射 /demo/add 到 hello.MainController.addNewUser(java.lang.String,java.lang.String),如下截图:

所以我们看一下:方法返回相应的JSON数据。MainController` 的代码如下:通过代码,我们发现 GET请求,带上参数 name 和 email 会调用 `userRepository.save();` 保存用户信息到DB。而 all 则 调用 `userRepository.findAll()

而 织入到Controller中。一切就是这么简单。userRepository` 则通过 Spring 的 `Autowired
至此,基于Spring Boot 读写MySQL数据库就搞定了,自己写几个Bean,去玩一玩吧!
最后一点,花点钱,不寒碜!不一定非走西部数码购买,只是我以前帮朋友修改网站时,恰巧有需求,就买了一个。
五、总结
-
文章看到这里,你已经会用Spring Boot 读写 DB数据了,也就是可以提供动态的API数据了,但现在的数据只能返回JSON或String。仰望天空,还是有一种淡淡的忧伤!如果我想做个页面,或者有图片要显示,怎么办?只会这些,还是没有那么自信!
-
下一篇,介绍:Spring Boot 制作WEB UI界面。
个人微信:ssevening

