gpt4 book ai didi

JAVA - 从连接 SQL 查询将对象添加到 JSON

转载 作者:行者123 更新时间:2023-11-29 19:30:00 25 4
gpt4 key购买 nike

我希望标题设置得很好......

我有一个现有的 Java 应用程序(我无法更改所有应用程序),它只是使用 gson 库将数据库表公开为 JSON。

我的问题是如何不仅使用数据库的简单字段而且还使用链接的对象创建 Json。

我有一个这样的 table

| objectid | plantid | other_fields |

现在,现有的 gson 只为我提供整数形式的 plantid,但我有一个 plants

| plantid | plantname | other_fields |

我想要带有 Plant 对象的 gson,而不仅仅是 plantid

这就是应用程序如何将 Sql 查询映射到模型

public ArrayList<ObjectsEntity> getObject(String objectId){
ArrayList<ObjectsEntity> list = new ArrayList<>();
ResultSet rs = null;
try {
Connection connLocal = connFactLocal.getConnection();
String query = "select * from OBJECTS o left join PLANTS p on o.PLANTID = p.PLANTID "
+ "left join OBJECTTYPES ot on o.OBJECTTYPEID = ot.OBJECTTYPEID";
Statement stmt = connLocal.createStatement();
rs = stmt.executeQuery(query);
while (rs.next()) {
ObjectsEntity oe = new ObjectsEntity();
oe.setOBJECTID(rs.getInt("OBJECTID"));
oe.setPLANTID(rs.getInt("PLANTID"));
oe.setOBJECTNAME(rs.getString("OBJECTNAME"));
oe.setOBJECTTYPEID(rs.getInt("OBJECTTYPEID"));
oe.setDESCRIPTION(rs.getString("DESCRIPTION"));
oe.setISMONITORED(rs.getBoolean("ISMONITORED"));
oe.setGROUP(rs.getString("GROUP"));
list.add(oe);
}
} catch (SQLException e){
logger.error("SQL Error:",e);
}
return list;
}

ObjectsEntity.java 是一个简单的映射器,带有带有 getter 和 setter 的数据库表我尝试更改此映射器更新

int PLANTID

Plants plant

但是我不知道如何从查询的结果集中设置植物...有什么想法吗?

最佳答案

您需要使用结果集中的数据填充 Plants 对象,并将其设置在 ObjectsEntity 上。使用 ObjectMapper 您可以将 ObjectsEntity 转换为 JSON 字符串

    while (rs.next()) {
ObjectsEntity oe = new ObjectsEntity();
oe.setOBJECTID(rs.getInt("OBJECTID"));
Plants plants = new Plants();
plants.setId(rs.getInt("PLANTID"));
//Set other fields.
oe.setPLANTS(plants);
oe.setOBJECTNAME(rs.getString("OBJECTNAME"));
oe.setOBJECTTYPEID(rs.getInt("OBJECTTYPEID"));
oe.setDESCRIPTION(rs.getString("DESCRIPTION"));
oe.setISMONITORED(rs.getBoolean("ISMONITORED"));
oe.setGROUP(rs.getString("GROUP"));
list.add(oe);
}

关于JAVA - 从连接 SQL 查询将对象添加到 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41850697/

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