数据库树状结构数据查询
2019-10-25 07:02:19来源:博客园 阅读 ()
数据库树状结构数据查询
思路:
1.根据条件先查询所有一级目录,将数据使用对象Object封装并将对象存放到集合list1中;
2.遍历list1 ;
3.根据条件查询一级目录各对应的子目录将数据存储到对象Object中;
4.返回list1;
eg:
SQL:
INSERT INTO gjyf_kpis.qaa_publish_portfolio_config (id,category_code,parent_code,publish_id,publish_allocation_id,category_name) VALUES
('1186921770763141120','combName','0','1186907623314702337','1186907623314702336','组合')
,('1186921770796695552','equity-reits','0','1186907623314702337','1186907623314702336','权益类')
,('1186921770830249984','stocks','equity-reits','1186907623314702337','1186907623314702336','股票')
,('1186921770863804416','hStock','equity-reits','1186907623314702337','1186907623314702336','港股')
,('1186921770901553152','covtBonds','equity-reits','1186907623314702337','1186907623314702336','转债')
,('1186921770930913280','fixed-income','0','1186907623314702337','1186907623314702336','固收类')
,('1186921770960273408','bonds','fixed-income','1186907623314702337','1186907623314702336','债券')
,('1186921770993827840','cash-assets','0','1186907623314702337','1186907623314702336','现金类')
,('1186921771035770880','monetarys','cash-assets','1186907623314702337','1186907623314702336','货币')
,('1186921771069325312','others-income','0','1186907623314702337','1186907623314702336','其它类')
;
INSERT INTO gjyf_kpis.qaa_publish_portfolio_config (id,category_code,parent_code,publish_id,publish_allocation_id,category_name) VALUES
('1186921771098685440','qdllStock','others-income','1186907623314702337','1186907623314702336','QDII股')
,('1186921771132239872','qdllBond','others-income','1186907623314702337','1186907623314702336','QDII债')
,('1186921771161600000','crude','others-income','1186907623314702337','1186907623314702336','原油')
,('1186921771199348736','hedgeFund','others-income','1186907623314702337','1186907623314702336','对冲基金')
;
JAVA:
//查询数据结果封装类
import lombok.Data;
@Data
public class QaaKnv {
private String name;
private String value;
private Object data;
public QaaKnv(String name, String value) {
super();
this.name = name;
this.value = value;
}
public QaaKnv(String key, String name, String value) {
super();
this.name = name;
this.value = value;
}
public QaaKnv setData(Object data) {
this.data = data;
return this;
}
}
/**
* 查询表头信息
*/
public Object selectPublishPortfolioConfigHeader(String publishId, String publishAllocationId) {
List<PublishPortfolioConfig> publishPortfolioConfigs = this.selectPublishPortfolioConfig(publishId,publishAllocationId);
List<QaaKnv> allResult = ListUtils.newArrayList();
//一级
for (PublishPortfolioConfig ppfc : publishPortfolioConfigs) {
if("0".equals(ppfc.getParentCode())) {
allResult.add(new QaaKnv(ppfc.getCategoryName(), ppfc.getCategoryCode()));
}
}
//二级
for (QaaKnv qaaKnv : allResult) {
List<QaaKnv> leve2Kv= ListUtils.newArrayList();
for (PublishPortfolioConfig ppfc : publishPortfolioConfigs) {
if(!"0".equals(ppfc.getParentCode()) &&
ppfc.getParentCode().equals(qaaKnv.getValue())) {
leve2Kv.add(new QaaKnv(ppfc.getCategoryName(), ppfc.getCategoryCode()));
}
}
if(leve2Kv.size()>0) {
qaaKnv.setData(leve2Kv);
}
}
return allResult;
}
//测试结果
[ { "name": "组合", "value": "combName" }, { "name": "权益类", "value": "equity-reits", "data": [ { "name": "股票", "value": "stocks" }, { "name": "港股", "value": "hStock" }, { "name": "转债", "value": "covtBonds" } ] }, { "name": "固收类", "value": "fixed-income", "data": [ { "name": "债券", "value": "bonds" } ] }, { "name": "现金类", "value": "cash-assets", "data": [ { "name": "货币", "value": "monetarys" } ] }, { "name": "其它类", "value": "others-income", "data": [ { "name": "QDII股", "value": "qdllStock" }, { "name": "QDII债", "value": "qdllBond" }, { "name": "原油", "value": "crude" }, { "name": "对冲基金", "value": "hedgeFund" } ] } ]原文链接:https://www.cnblogs.com/MrYangSX/p/11727566.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- eclipse下创建Maven项目(包含webapp目录结构) 2020-06-09
- 【JVM故事】了解JVM的结构,好在面试时吹牛 2020-06-06
- 数据的存储结构浅析LSM-Tree和B-tree 2020-06-04
- 拼多多三面惨败,问题在于java中间件、数据库与spring框架. 2020-06-04
- 数据结构:用实例分析ArrayList与LinkedList的读写性能 2020-06-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash