根据id查询所有子节点/父节点,mysql 以及ssm前后台处理流程
1、所示案例数据表结构设计如下所示:

2、案例数据如下所示:

3、mysql查询语句可以查询出父级目录信息:
注意:自己的数据表表名称,切记手动修改,字段名称(特别注意id,parent_id字段名称,不然肯定查询不出来的)。
SELECT T2.*
FROM (
SELECT
@r AS _id,
(SELECT @r := parent_id FROM catelog WHERE id = _id) AS parent_id,
@l := @l + AS lvl
FROM
(SELECT @r := , @l := ) vars,
catelog h
WHERE @r <> ) T1
JOIN catelog T2
ON T1._id = T2.id
ORDER BY T1.lvl DESC
查询实例如下所示:

4、然后使用ajax来传递id的值,最后展示出来查询出来的名称即可:
//查询目录
function findByDirectory(id){
var url = 'cateLogAction!findParentMessageById.action?id='+id;
$.ajax({
type : 'get',
url : url,
dataType : 'json',
global : false,
async : true,
success : function(data) {
//alert(data.parentMessage);//打印测试显示内容
var catelogName = [];
for(var i=;i<data.parentMessage.length;i++){
//alert(data.parentMessage[i].name);
//如果是最后的子目录,后面不加/
if(i == data.parentMessage.length - ){
var name = data.parentMessage[i].name
}else{
var name = data.parentMessage[i].name + "/";
}
catelogName += name;
}
//使用id设置值
$("#directory").text(catelogName);
}
});
}
由于使用的框架ssm是struts,spring,mybatis(ibatis)框架,过程调用简单,省略,只书写了核心部分。
<select id="findParentMessageById" resultMap="cateLogInstanceMap">
<![CDATA[
SELECT T2.*
FROM (
SELECT
@r AS _id,
(SELECT @r := parent_id FROM catelog WHERE id = _id) AS parent_id,
@l := @l + AS lvl
FROM
(SELECT @r := , @l := ) vars,
catelog h
WHERE @r <> ) T1
JOIN catelog T2
ON T1._id = T2.id
ORDER BY T1.lvl DESC
]]>
</select>
5、由于我需要的是这种格式的展示形式,所以,展示如下所示,获取其他值,自行将获取到前台的数据进行拼接即可。

待续......
根据id查询所有子节点/父节点,mysql 以及ssm前后台处理流程的更多相关文章
- EasyUI tree 选中父节点子节点全部选中,选中子节点父节点不选中
需求:EasyUI tree 选中父节点子节点全部选中,选中子节点父节点不选中 效果: /** * 给树增加onCheck事件,首先使用cascadeCheck:false属性禁止全选, ...
- js|jq获取兄弟节点,父节点,子节点
08.19自我总结 js|jq获取兄弟节点,父节点,子节点 一.js var parent = test.parentNode; // 父节点 var chils = test.childNodes; ...
- CSS/Xpath 选择器 第几个子节点/父节点/兄弟节点
0.参考 1.初始化 In [325]: from scrapy import Selector In [326]: text=""" ...: <div> ...
- JavaScript通过父节点ID递归生成JSON树
JavaScript通过父节点ID递归生成JSON树: · 实现思路:通过递归实现(第一次递归的时候查询出所有的父节点,然后通过当前父节点id不断地去查询所有子节点,直到递归完毕返回) · 代码示 ...
- vue_elementUI_ tree树形控件 获取选中的父节点ID
el-tree 的 this.$refs.tree.getCheckedKeys() 只可以获取选中的id 无法获取选中的父节点ID想要获取选中父节点的id;需要如下操作1. 找到工程下的node_m ...
- Z-tree 统计每一父节点的叶子节点数(看这一篇就够了)
最近刚走出校园的我找到了第一份工作,在入职考核中就遇见了一道Z-tree的试题 这道题目本身是不难的,但是我第一次接触这个插件而且还把解决问题的方向搞错了,弄的我好几天都很难受. 弄得我都开始怀疑人生 ...
- 树形下拉框ztree、获取ztree所有父节点,ztree的相关方法
参考:jQuery树形控件zTree使用小结 需求 添加.修改的终端需要选择组织,组织是多级架构(树状图显示). 思路 1.因为下拉框需要树状图显示,所以排除使用select做下拉框,改用input ...
- cocos子节点转父节点坐标 原理浅析(局部坐标转世界坐标同理)
在CCNode的类中,有一个得到 一个节点坐标系转换父亲坐标系的一个矩阵,节点内坐标乘以这个矩阵,就可以转换为在节点父节点中的坐标,方法名为: Mat4& Node::getNodeToPar ...
- sql递归查询 根据Id查所有子结点
Declare @Id Int Set @Id = 0; ---在此修改父节点 With RootNodeCTE(D_ID,D_FatherID,D_Name,lv) As ( Select D_ID ...
随机推荐
- yolo
 将目标检测过程设计为为一个回归问题(One Stage Detection),一步到位, 直接从像素到 bbox 坐标和类别概率 优点: 速度快(45fps),效果还不错(mAP 63.4) 利用 ...
- Python3学习笔记04-运算符
算术运算符 + 加两个对象相加 - 减得到负数或是一个数减去另一个数 * 乘两个数相乘或是返回一个被重复若干次的字符串 / 除x 除以 y % 取模返回除法的余 ...
- telnetlib 中各种 read 函数的意义
基本原理 要明白 telnetlib 中各个 read 函数的意义,首先要了解 telnetlib 的工作原理. telnetlib 首先通过 socket 连接从网络接收数据,把数据存储到自己的 r ...
- 031_keepalive+nginx保证nginx高可用
一. yum -y install keepalived keepalived配置: keepalived.conf: vrrp_instance proxy { state BACKUP inter ...
- JMS消息队列之ActiveMQ简单示例
废话不多说,在进入主题前先看一张图,对ActiveMQ有个大体的了解: 下面进入主题: 1.添加需要的maven依赖 <!-- active mq begin --> < ...
- Eclipse中避免修改后台代码后手动install和重启
之前每次修改maven多模块项目后都得重新执行mvn install ,install完还得重启jetty/tomcat服务器,非常浪费 时间,其实修改代码后可以不用执行install,也不用 ...
- [转]PhpStorm快捷键大全
1 前言 PhPStorm 是 JetBrains 公司开发的一款商业的 PHP 集成开发工具,PhpStorm可随时帮助用户对其编码进行调整,运行单元测试或者提供可视化debug功能.Phpstro ...
- [转]Fiddler模拟post四种请求数据
1 前言 仅作为记录使用. 2 内容 post请求主体详解: 对于get请求来说没有请求主体entity-body.对于post请求而言,不会对发送请求的数据格式进行限制,理论上你可以发任意数据,但是 ...
- Sql 08数据库还原数据库时一直提示数据库被占用
直接试试这个sql语句吧 ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK IMMEDIATE ALTER database [datebase] ...
- Fiddler 抓包工具
序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的 ...