gpt4 book ai didi

java - 从JAVA中的sql查询中获取JSON的所有行

转载 作者:行者123 更新时间:2023-12-05 05:14:52 25 4
gpt4 key购买 nike

我得到了下一个代码。我想我只需要做一点改变,但我不知道是什么。该代码仅返回最后一行,但我想查看所有响应行。如果我声明 LIMIT 10,那么我希望得到 10 个结果作为响应。

我应该改变什么?

谢谢。

    @RequestMapping(value="/url/results/", method=RequestMethod.GET)
public JsonResponse getResults() throws SQLException {

Connection connection = ConnSingle.getInstance().getConnection(env);
String selectSql = "SELECT * FROM Lib.Table WHERE YEARS=10 LIMIT 10";

Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(selectSql);


JSONArray json = new JSONArray();
ResultSetMetaData rsmd = rs.getMetaData();
JSONObject obj = new JSONObject();

System.out.println(rsmd);

while(rs.next()) {
int numColumns = rsmd.getColumnCount();
for (int i=1; i<=numColumns; i++) {
String column_name = rsmd.getColumnName(i);
obj.put(column_name, rs.getObject(column_name));
}
}

rs.close();
statement.close();
connection.close();

return new JsonResponse(obj);
}

最佳答案

@jaydip 是对的(他领先我几分钟)。这是一个例子...您正在将所有结果推送到同一个 obj 对象中。要显示所有结果,您必须将“obj”插入如下数组:

JSONArray objects = new JSONArray();
while(rs.next()) {
int numColumns = rsmd.getColumnCount();
for (int i=1; i<=numColumns; i++) {
String column_name = rsmd.getColumnName(i);
obj.put(column_name, rs.getObject(column_name));
objects.add(obj);
}
}
rs.close();
statement.close();
connection.close();

return new JsonResponse(objects);

关于java - 从JAVA中的sql查询中获取JSON的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52190964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com