Gson:类com.mysql.jdbc.JDBC4Connection声明了多个名为connectionLifecyc



我正在尝试查询数据库,然后使用谷歌gson库将获得的结果集转换为json。在尝试这样做时,我得到了错误:
classcom.mysql.jdbc.JDBC4Connection声明了多个名为connectionLifecycleInterceptors 的JSON字段

我试图查找connectionLifecycleInterceptors变量来更改名称,但我做不到。本文中的其他问题不仅仅涉及超类和子类,而我得到的错误,我想来自数据库结果集。

public String convertToGson(ResultSet results)  throws Exception 
{ //code to convert resultset to gson
Gson gson = new Gson();
String gsonstring = gson.toJson(results);///it indicates the error is here
return gsonstring;
}

以下是错误:java.lang.IollegalArgumentException:类com.mysql.jdbc.JDBC4Connection声明了多个名为connectionLifecycleInterceptors的JSON字段在com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapter Factory.java:172(网址:com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapter Factory.java:102(网址:com.google.gson.gson.getAdapter(gson.java:458(网址:com.google.gson.internal.bind.TypeAdapterUntimeTypeWrapper.write(TypeAdapterUnimeTypeWrappeR.java:56(网址:com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapter Factory.java:127(网址:com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapter Factory.java:245(网址:com.google.gson.gson.toJson(gson.java:704(网址:com.google.gson.gson.toJson(gson.java:683(网址:com.google.gson.gson.toJson(gson.java:638(网址:com.google.gson.gson.toJson(gson.java:618(在样品中。QueryCentre.covertToGson(QueryCentre.java:91(在样品中。QueryCentre.showavailablerooms(QueryCentre.java:72(在样品中。ServerSide.main(ServerSide.java:51(

ResultSet不是常规的POJO,您需要对其进行迭代并手动创建POJOMap实例。在这个转换之后,您可以将这些实例的列表传递给序列化过程。

伪码:

List<Map<String, Object>> rows = new ArrayList<>();
while (results.next()) {
Map<String, Object> mapForRow = createMapFrom(result);
rows.add(mapForRow);
}
String json = gson.toJson(rows);

有用的方法:

  • getMetaData
  • 下一个

另请参阅:

  • Java,在结果集中循环
  • 要列出的结果集

相关内容

  • 没有找到相关文章

最新更新