【发布时间】:2016-12-02 01:38:17
【问题描述】:
当我在 MySQL 命令行界面中查询数据库时,我会得到一些漂亮的美化表格输出:
mysql> select * from users;
+------------+--------------------------------------+------------+
| IGN | UUID | AdminLevel |
+------------+--------------------------------------+------------+
| GamerBoy | 0fcba4a5-f039-4771-ae22-bf203ed89c1c | 3 |
+------------+--------------------------------------+------------+
现在,在 java 中,我必须使用 ResultSet 来存储查询结果,这是我目前拥有的代码:
String query = String.join(" ", Arrays.copyOfRange(args, 2, args.length));
System.out.println("Querying the database with: " + query);
try {
Statement stmt = dbConnection.createStatement();
ResultSet rs = stmt.executeQuery(query);
System.out.println("Query parsed successfully!");
/* What need to go here? I want to output the result of the query
* in the same way that the MySQL tool would - some prettified String.
*/
} catch (SQLException exception) {
System.out.println("Query failed: " + exception.getMessage()) ;
}
我如何获得一个包含 MySQL 将给我的输出类型的字符串?
基本上,我想制作一个可以查询数据库的 java 程序——查询每次都可以不同,它是用户选择的——然后以 MySQL 使用的简洁表格格式输出查询结果。
我该怎么做?
【问题讨论】:
-
ResultSet 不保留 MySQL 使用的格式。如果您希望它看起来像 MySQL,您必须自己创建该格式。
-
@SusannahPotts 我刚开始使用 JDBC,对我来说,问题并不像你想象的那么简单;我什至不知道用户正在查询什么表,更不用说列的名称或数量等了。
-
我从来没有说过它是微不足道的,或者我认为它是微不足道的。我只是说 ResultSet 不保留格式,并且您希望您必须创建任何格式。
-
有许多库可以帮助完成从 ResultSet 转换数据的繁琐工作。示例包括jOOQ、SQLContainer 中的Vaadin (demo)、RowSet 与各种实现的接口等等。这是一个很大的领域。但首先要自己用纯 Java 代码做一些事情来获得导向。
标签: java mysql database jdbc resultset