繁体   English   中英

数据库中的行作为字符串(JDBC)

[英]Row from a database as string (JDBC)

是否有直接方法可以将ResultSet中的所有元素作为字符串获取? JDBC

您可以使用BasicRowProcessorApache的公地,Dbutils

ResultSet rs = ....
RowProcessor rp = new BasicRowProcessor();
Map m = rp.toMap( rs );

String s = m.toString();

然后您将拥有:

{ id = 1, name = Oscar, lastName = Reyes }

等等

如果要摆脱columNames:

String s = m.values().toString();

我要问-为什么您需要这样的东西?

不,这是不可能的-无论如何,您至少需要调用一次getString() 最好的办法是在SQL中连接字段,例如

SELECT col1 || ', ' || col2 || ', ' || col3 ... FROM my_table

并调用resultSet.next().getString(1)来获取。

更新 (基于评论)我认为(实际上取决于您的JDBC驱动程序和数据库,您必须进行测量才能确定)在发送数据(从数据库到您的数据库)之间的数据量差异不大应用))按列还是一个连接字符串。 事实上,后者甚至更加昂贵,如果你有一个数字/日期,因为他们很可能会占据文本格式多个字节。

没有一个方法可以调用它,但是您可以使用类似的方法来构建一个String:

StringBuilder sb = new StringBuilder();
ResultSetMetaData rsmd = rs.getMetaData();
int numberOfColumns = rsmd.getColumnCount();
for (int i = 1; i <= numberOfColumns; i++) {
    sb.append(rs.getString(i));
    if (i < numberOfColumns) {
        sb.append(", ");
    }
}
String data = sb.toString();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM