Android快速构建系列之:SpringBoot + Docker(二)

这次的目的:用Spring Boot 读写 DB数据了(也就是可以提供动态的API数据)**数据库:(自己搭建或者买都ok)
1.这个是西部数码的
http://www.west263.hk/services/webhosting/database.asp?tabindex=mysql

Android快速构建系列之:SpringBoot + Docker(二)_第1张图片
西部

(我个人买的西部数码的 80一年 ,学习嘛总有点付出)

2.本地构建mysql,网上很多blog这里我也不一一列出了。

3.直接开始用Spring boot 读取MYSQL

Android快速构建系列之:SpringBoot + Docker(二)_第2张图片
springboot

(文档: https://spring.io/guides/gs/accessing-data-mysql/)
老样子,执行下方命令:git clone https://github.com/spring-guides/gs-accessing-data-mysql.git

4.然后,AS打开这个project
我们修改 application.properties 文件,修改为刚购买的MYSQL数据库网址,数据库和用户名:
( validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
create-drop 加载hibernate时创建,退出是删除表结构
update 加载hibernate自动更新数据库结构

spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://sql.w108.vhostgo.com:3306/kinzirva
spring.datasource.username=
spring.datasource.password=

Allow Thymeleaf templates to be reloaded at dev time
spring.thymeleaf.cache: true
server.tomcat.access_log_enabled: true
server.tomcat.basedir: target/tomcat)

Android快速构建系列之:SpringBoot + Docker(二)_第3张图片
property,记住usename和password别忘了填写

5.小伙伴们,开始happy了(然后启动服务!!!是的,没错,我们又可以直接开车了。到改目录路径下,执行命令:./gradlew bootRun)
运行成功后,
http://localhost:8080/demo/[email protected]向数据库中添加一条记录
再访问: http://localhost:8080/demo/all
可以发现数据库里面插入一条1b的数据,详细数据就不展示了,如图

Android快速构建系列之:SpringBoot + Docker(二)_第4张图片
数据库 ![Uploading 屏幕快照 2017-11-01 下午4.33.03_533864.png . . .]

问题:
a 数据库表结构是什么创建的? 他怎么知道要创建什么表?
b 我是怎么知道要访问 add 和 all 网址的?

a.Android开发中,常会用到GreenDao,然后根据实体体去生成创建表的语句,这里也是通过读取注册,直接操作DB执行建表操作,
(声明实体类user)然后 上面 application.properties 中的 spring.jpa.hibernate.ddl-auto=create


创建表

即代表在运行时,根据POJO类自动创建数据库表结构。

对于客户端而言,省去了什么?省去了你去写建表语句.(tips:做得绝一点,你直接声明好POJO类,启动一次创建好相应的表结构,再把 create 的值改为none,后面就专心写你的业务就可以了。).
b.其实你如果够仔细的话,在启动时,Spring boot 启动日志告诉我们:(建议集合日志和代码来看)
映射 /demo/add 到 hello.MainController.addNewUser(java.lang.String,java.lang.String) —>


Android快速构建系列之:SpringBoot + Docker(二)_第5张图片
MainController

(所以再看:MainController 的代码如下:通过代码,我们发现 GET请求,带上参数 name 和 email 会调用 userRepository.save(); 保存用户信息到DB。
而 all 则 调用 userRepository.findAll()方法返回相应的JSON数据。) userRepository 则通过 Spring 的 @Autowired 植入到Controller中。
So, Everything is Simple!

下一期:所以先搭一个Spring Web页面(理由:我们现在已经可以从DB中动态的输出 数据库 中的数据给客户端使用。但这些还不够,因为客户端用到的不仅仅是API,还有WEB H5的页面。)

你可能感兴趣的:(Android快速构建系列之:SpringBoot + Docker(二))