java - 如何将查询的结果集转换为可以进一步解析以创建 json 的 pojo 类?
问题描述
我有一个要求,其中我有一个返回某些结果集的复杂数据库查询。我必须将结果映射到 POJO。我如何使用优化的代码来实现这一点?最后我必须解析pojo来创建一个json(json模式粘贴在下面)。
查询结果集示例(管道分隔):
object_id|object_name|object_owner|object_type|status|parent_id|last_modified_timestamp 123_S1|ABC_S1|XYZ_S1|模式|有效|无|2019-11-09_20:40:11 123_S1T1|ABC_S1T1|XYZ_S1T1|表|有效|123_S1|2019-11-09_20:40:11 123_S1T1C1|ABC_S1T_1C1|ABC_S1T_C1|XYZ valid|123_S1T1|2019-11-09_20:40:11 123_S1T1C2|ABC_S1T1C2|XYZ_S1T1C2|column|valid|123_S1T1|2019-11-09_20:40:11 123_S1T1C3|ABC_S1T1C3|XYZ_S1T1C3|column|valid|123_S1T1|2019-11- 09_20:40:11 123_S1T2 | ABC_S1T2 | XYZ_S1T2 |表|录音|有效| 123_S1 | 2019-11-09_20:40:11 123_S1T2C1 | ABC_S1T2C1 | ABC_S1T2C1 | |XYZ_S1T2C2|column|valid|123_S1T2|2019-11-09_20:40:11 123_S1T2C3|ABC_S1T2C3|XYZ_S1T2C3|column|valid|123_S1T2|2019-11-09_20:40:11 123_S1V1|ABC_S1V1|XYZ_S1V1|view|valid|123_S1 | 2019-11-09_20:40:11 123_S1V1C1 | ABC_S1V1C1 | XYZ_S1V1C1 |列| column |有效| 123_S1V1 | 2019-11-09_20:40:40:11 123_S1V1C2 | :11 123_S1V1C3|ABC_S1V1C3|XYZ_S1V1C3|column|valid|123_S1V1|2019-11-09_20:40:11 123_S1V2|ABC_S1V2|XYZ_S1V2|view|valid|123_S1|2019-11-09_20:40:11 123_S1V2C1|ABC_S1V2C1|XYZ_S1V2C1|column |valid|123_S1V2|2019-11-09_20:40:11 123_S1V2C2|ABC_S1V2C2|XYZ_S1V2C2|column|valid|123_S1V2|2019-11-09_20:40:11 123_S1V2C3|ABC_S1V2C3|XYZ_S1V2C3|column|valid|123_S1V2|2019-11 -09_20:40:11
PS:我尝试了行映射器方法,但对如何维护父子关系感到困惑,例如架构可以拥有表/视图列表。同样,一个表/视图可以有多个列。
解决方案
如果您使用像hibernate这样的ORM工具会容易得多。这样,您的查询可以轻松返回实体 pojo,稍后可以使用 Jackson 或 GSON 等工具将其转换为 JSON
推荐阅读
- android - ImageButton 按钮中图像的大小
- php - 严重性:警告消息:非法字符串偏移 'status' 和消息:非法字符串偏移 'transaction_details'
- python - tkinter python 更改列表框文件的名称而不更改该文件的文件目录
- arrays - 如何成对比较Ruby中的两个数组?
- pytorch - 带有 nn.Linear 的错误 CUBLAS_STATUS_NOT_INITIALIZED
- android - android缓冲区大小错误上的Tensorflowlite
- linux - 如何在 Windows 上使用 Mac 和 Linux 的“nwjc”版本?
- angular - 订阅组件正在工作,但异步管道未订阅可观察的
- java - foobar.withgoogle.com 任务请通过编码消息 java 测试 4 失败
- html - 如何将组件的html嵌入到另一个组件的html中