【问题标题】:Working With Java to transform result of ResultSet, by which I do not know the number of columns in the query [duplicate]使用Java转换ResultSet的结果,我不知道查询中的列数[重复]
【发布时间】:2016-05-07 01:26:43
【问题描述】:

我开始学习 Java。出于这个原因,我对 Java 中存在的库和方法不是很熟悉。我想了解是否有任何方法可以捕获 ResultSet 类型的对象,因为查询的返回如下:

The ResultSet rs_Tbl_CONTROL_SYNCHRONISM = 
con.query("Select * From DB_EGLISE.Tbl_CONTROL_synchronism;"); 

获取ResultSet后,有什么办法可以将输出转成JSON格式吗?是否有图书馆或其他方法可以为我做到这一点?

我注意到一些与我类似的问题,但是他们都不会完全回答我的疑问,必须了解如何在 JAVA 中将 ResultSET 对象的返回全部转换为 JSON,在现场找到的响应中,我注意到它有必要通知每个字段返回,但不知道哪些字段会返回一个动态程序,即每次我都会做一个查询。我应该如何处理这个故障? GSON 做这个?又怎么做?

【问题讨论】:

标签: java json


【解决方案1】:

是的,您可以使用 Gson 适配器将 ResultSet 转换为 Json

例子

List<ObjectX> objects= yourDao.list();
String jsonResult = new Gson().toJson(objects);

【讨论】:

【解决方案2】:

1)首先将类路径设置为gson-2.1.jar

2) 将 ResultSet 对象信息转换为 JSON 的代码。

ResultSet rs_Tbl_CONTROL_SYNCHRONISM = con.query("Select * From DB_EGLISE.Tbl_CONTROL_synchronism;");

JsonObject jsonResponse = new JsonObject(); 
JsonArray data = new JsonArray();
while(rs_Tbl_CONTROL_SYNCHRONISM.next() ) {
JsonArray row = new JsonArray();
row.add(new JsonPrimitive(rs_Tbl_CONTROL_SYNCHRONISM.getString("columnName1")));
row.add(new JsonPrimitive(rs_Tbl_CONTROL_SYNCHRONISM.getString("columnName2")));
row.add(new JsonPrimitive(rs_Tbl_CONTROL_SYNCHRONISM.getString("columnName3")));

data.add(row);
}
jsonResponse.add("aaData", data);

【讨论】:

  • 当我不知道返回 ResultSET 的列数时,我应该如何处理 GSON?
  • 计数列 ResultSet rs = st.executeQuery(query); ResultSetMetaData rsmd = rs.getMetaData(); int columnsNumber = rsmd.getColumnCount();
  • 按原样添加这个? ResultSet rs_Tbl_PEOPLE = con.query("Select * From DB_EGLISE.Tbl_PEOPLE WHERE COD_Ident_IGREJ = '" + w_obj.getString("COD_Ident_IGREJ") +"' 和 COD_Ident_PERSONS = ''+ w_obj.getString("COD_Ident_persons") +"'; ");
猜你喜欢
  • 2018-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-04
  • 2018-08-20
  • 1970-01-01
  • 2016-02-25
相关资源
最近更新 更多