在本系列的上一篇文章中, 给大家演示了如何统一 Rest API 的输出格式,本文我们将介绍如何通过 Vertx 的 API 访问关系数据库。
在课堂案例中,我们使用 MySQL 作为后台数据库,如果没有已经安装好的 MySQL , 可以参考 在Docker中使用MySQL服务器 使用 docker 进行安装。
首先需要了解的是,因为 Vertx 框架提供的响应式 (Reactive) 的编程风格和基础设施,因此原有的 JDBC API 已经不能使用
准备数据库和表
在 安装好的 MySQL 中建立一个名为: Todo 的数据库,再建立一个名为: todo_user 的用户,让它拥有访问 Todo 库的权力。
用下面的脚本建立一张简单的表
1 | CREATE TABLE `tbl_todo` ( |
安装依赖库
打开项目的 pom.xml 文件,加入以下依赖库
1 | <!-- JDBC & MySQL --> |
管理Datasouce
因为我们需要在程序的不同地方共享 Datasouce, 为了方便存取,我们建立一个名为 DBManager 的单例类,如下:
1 | 4j |
这样在程序其它地方需要使用数据库时,就只需要调用 getInstance().getClient() 就可以了。
改造API
改造 API, 让其从数据库表中去取数, 改造后的程序如下:
1 | router.route("/api/v1/auth/todo").handler(ctx -> { |