From 2352bdcdd7c151b29f046ab2d7320ad68103b932 Mon Sep 17 00:00:00 2001 From: Francesco Date: Fri, 20 Oct 2023 17:58:54 +0200 Subject: [PATCH] WIP SQL console --- .../controller/DefaultDbAdminController.java | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/main/java/tech/ailef/dbadmin/external/controller/DefaultDbAdminController.java b/src/main/java/tech/ailef/dbadmin/external/controller/DefaultDbAdminController.java index f6f1a9a..e5fff09 100644 --- a/src/main/java/tech/ailef/dbadmin/external/controller/DefaultDbAdminController.java +++ b/src/main/java/tech/ailef/dbadmin/external/controller/DefaultDbAdminController.java @@ -19,6 +19,8 @@ package tech.ailef.dbadmin.external.controller; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -543,9 +545,36 @@ public class DefaultDbAdminController { model.addAttribute("activePage", "console"); if (query != null) { - jdbTemplate.execute(query); + List> results = jdbTemplate.query(query, (rs, rowNum) -> { + Map result = new HashMap<>(); + + ResultSetMetaData metaData = rs.getMetaData(); + int cols = metaData.getColumnCount(); + + for (int i = 0; i < cols; i++) { + Object o = rs.getObject(i + 1); + String columnName = metaData.getColumnName(i + 1); + result.put(columnName, o); + } + + return result; + }); + + + /* + * Print each map in a tabular format + */ + for (Map obj : results) { + System.out.println("-----------------------------------------------------------"); + for (String key : obj.keySet()) { + System.out.printf("%-20s | %s\n", key, obj.get(key)); + } + + } } + + return "console"; }