在Vert.x页面上获取和显示MariaDB中的数据,可以通过以下步骤实现:
以下是一个示例代码,演示如何在Vert.x页面上获取和显示MariaDB中的数据:
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Vertx;
import io.vertx.core.http.HttpServer;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.RoutingContext;
import io.vertx.ext.jdbc.JDBCClient;
import io.vertx.ext.sql.SQLConnection;
public class MainVerticle extends AbstractVerticle {
private JDBCClient jdbcClient;
@Override
public void start() {
// 创建JDBCClient
jdbcClient = JDBCClient.create(vertx, config());
// 创建HTTP服务器
HttpServer server = vertx.createHttpServer();
// 创建路由器
Router router = Router.router(vertx);
// 处理根路径的请求
router.route("/").handler(this::handleRoot);
// 启动HTTP服务器
server.requestHandler(router).listen(8080);
}
private void handleRoot(RoutingContext context) {
// 获取数据库连接
jdbcClient.getConnection(res -> {
if (res.succeeded()) {
SQLConnection connection = res.result();
// 执行SQL查询语句
connection.query("SELECT * FROM your_table", query -> {
if (query.succeeded()) {
// 获取查询结果
List<JsonObject> rows = query.result().getRows();
// 构建HTML页面
StringBuilder html = new StringBuilder();
html.append("<html><body><table>");
// 遍历查询结果,生成表格行
for (JsonObject row : rows) {
html.append("<tr>");
html.append("<td>").append(row.getString("column1")).append("</td>");
html.append("<td>").append(row.getString("column2")).append("</td>");
// 添加更多列...
html.append("</tr>");
}
html.append("</table></body></html>");
// 发送HTML响应
context.response()
.putHeader("Content-Type", "text/html")
.end(html.toString());
// 关闭数据库连接
connection.close();
} else {
// 处理查询失败的情况
context.response().setStatusCode(500).end("Failed to query data from database.");
}
});
} else {
// 处理获取数据库连接失败的情况
context.response().setStatusCode(500).end("Failed to connect to database.");
}
});
}
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
vertx.deployVerticle(new MainVerticle());
}
}
在上述示例代码中,首先创建了一个JDBCClient来连接MariaDB数据库。然后,创建了一个HTTP服务器和一个路由器,用于处理页面请求。在处理根路径的请求时,通过JDBCClient获取数据库连接,并执行SQL查询语句来获取数据。最后,将查询结果构建成HTML页面,并发送给客户端。
请注意,上述示例代码仅为演示目的,实际应用中可能需要进行错误处理、参数验证等其他逻辑。另外,为了简化示例,省略了页面模板引擎的使用,实际应用中可以考虑使用模板引擎来生成动态页面。
对于腾讯云相关产品和产品介绍链接地址,可以根据具体需求选择适合的产品,例如腾讯云数据库MariaDB、腾讯云云服务器等。具体的产品介绍和文档可以在腾讯云官网上找到。
领取专属 10元无门槛券
手把手带您无忧上云