使用 Spring JDBC Rowmapper 映射分层数据
Posted
技术标签:
【中文标题】使用 Spring JDBC Rowmapper 映射分层数据【英文标题】:Mapping Hierarchical Data using Spring JDBC Rowmapper 【发布时间】:2013-12-20 07:27:03 【问题描述】:我有一个父子层次结构,我通过维护自身外键将其存储在单个表中。我的表格列是ID, Name, ParentID
。这里,ParentID
引用了同一张表的ID
列。
我的模型类是这样的,
Class Model
private int id;
private String name;
private Model parent;
private List<Model> children;
如何使用RowMapper
映射此模型中的数据?或者,实现这一目标的最佳方法是什么?
我正在单个查询中检索整个层次结构。
【问题讨论】:
【参考方案1】:在您的 RowMapper - Map 中创建一个字段。当您解析结果时,将每个模型项目也放在地图中,其中键是项目的 id。
要将子元素添加到适当的父元素,请通过当前项目的父 ID 从地图中读取父模型元素。
需要提及的两件事
根元素没有父元素。 您的查询应提供正确的顺序(必须先处理父级)
【讨论】:
以上是关于使用 Spring JDBC Rowmapper 映射分层数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring JDBC Rowmapper 映射分层数据
用于 RowMapper 的 Spring jdbc 模板的单元测试用例
基于spring-boot-data-jdbc的RowMapper实例的初始化配置,配置内容和实体类的代码由测试类生成
spring对JDBC整合的时候,要注意自己写一个映射,继承RowMapper,查询的时候会用到,将返回的ResultSet一条对应一个Employee对象。