mysql 实现 start with
自己写service----> 传入map(idsql,rssql,prior) idsql 查询id rssql 查询结果集 调用 以下方法
@param ids 要查询的起始 start with
* @param allres 包含要递归数据的结果集 ( 查询时别名ID PID )
* @param pos prior---> UP or DOWN
* @return
*/
public static List<Map<String, Object>> getTree(ArrayList<String> ids,
List<Map<String, Object>> allres,String pos) {
List<Map<String, Object>> res=new ArrayList<Map<String,Object>>();
if("up".equals(pos)){
res=toCreatTreeUp(ids,allres,res);
}
if("down".equals(pos)){
res=toCreatTreeDown(ids,allres,res);
}
return res;
}
private static List<Map<String, Object>> toCreatTreeUp(ArrayList<String> ids,
List<Map<String, Object>> allres,List<Map<String, Object>> res) {
ArrayList<String> idss = new ArrayList<String>();
for(String id :ids){
for (Map<String, Object> map : allres) {
if(id.equals(map.get("ID").toString())){
idss.add(map.get("PID").toString());
res.add(map);
}
}
}
if (idss.size()!=0) {
ids = idss;
res = toCreatTreeUp(ids,allres,res);
}
return res ;
}
private static List<Map<String, Object>> toCreatTreeDown(ArrayList<String> ids,
List<Map<String, Object>> allres,List<Map<String, Object>> res) {
ArrayList<String> idss = new ArrayList<String>();
for(String id :ids){
for (Map<String, Object> map : allres) {
if(id.equals(map.get("ID").toString())){
res.add(map);
}
if(id.equals(map.get("PID").toString())){
idss.add(map.get("ID").toString());
}
}
}
if (idss.size()!=0) {
ids = idss;
res = toCreatTreeDown(ids,allres,res);
}
return res ;
}
mysql 实现 start with的更多相关文章
- Hadoop 中利用 mapreduce 读写 mysql 数据
Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP ...
- mysql每秒最多能插入多少条数据 ? 死磕性能压测
前段时间搞优化,最后瓶颈发现都在数据库单点上. 问DBA,给我的写入答案是在1W(机械硬盘)左右. 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高(SSD硬盘) 但这东西感 ...
- LINUX篇,设置MYSQL远程访问实用版
每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- 闰秒导致MySQL服务器的CPU sys过高
今天,有个哥们碰到一个问题,他有一个从库,只要是启动MySQL,CPU使用率就非常高,其中sys占比也比较高,具体可见下图. 注意:他的生产环境是物理机,单个CPU,4个Core. 于是,他抓取了CP ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
首先为什么要自己编写Dockerfile来构建 nginx.php.mariadb这三个镜像呢?一是希望更深入了解Dockerfile的使用,也就能初步了解docker镜像是如何被构建的:二是希望将来 ...
- 当忘记mysql数据库密码时如何进行修改
因为长时间没有使用数据库了,或者把密码改完之后就忘了数据库密码,不能正常进入数据库,也无法修改密码,有一个简单的常用修改密码方式: 1.首先找到和打开mysql.exe和mysqld.exe所在的文件 ...
随机推荐
- Model View
#include "dialog.h" #include "ui_dialog.h" #include<QtCore> Dialog::Dialog ...
- Json与常见的类型之间的转换
常用的json list转json List list=new ArrayList(); list.add("1"); list.add("2"); JsonA ...
- jsp中的form表单中的 id和name有什么区别了
<form action="./system/WebServer_webServerLogin" method="post" id="login ...
- iOS开发路线简述
1 iOS开发环境1.1 开发环境标准的配置是MacOSX+Xcode.MacOSX的话首选用苹果电脑,Macmini最便宜只要4000多就好了然后自己配一个显示器,MacBookPro 也可以,不推 ...
- 关于Entity Framework使用的简单例子
一.创建Code First模型 1.创建工程,这里我使用的是以.NET 4.0为目标的实体Web应用程序 2.安装Entity Framework 确保已安装NuGet,选择NuGet套件管理员&g ...
- linq操作文件方法
备忘 string directory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); List<File ...
- SublimeText教程
1安装插件 1.請先確認已經安裝好Package Control 未安裝的話請看:安裝第一個Sublime Text套件 2.按下CTRL + SHIFT + P並且輸入Package Control ...
- linux vim
wq 强制性写入文件并退出.即使文件没有被修改也强制写入,并更新文件的修改时间.x 写入文件并退出.仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间.
- css实现三角效果
demo <!DOCTYPE html> <html lang="zh"> <head> <meta charset=utf-8& ...
- Select2个人使用总结
最近项目有功能需要使用列表选多个用户,老夫偷懒使用zTree进行了多级checktree实现,不过貌似太丑,虽然对于我这种后端来说无所谓,但强迫症还是让我寻找其他代替控件. 闲话不说了,先上Selec ...