根据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 ...
随机推荐
- codevs 1081 线段树练习2 (线段树)
题目: 题目描述 Description 给你N个数,有两种操作 1:给区间[a,b]的所有数都增加X 2:询问第i个数是什么? 输入描述 Input Description 第一行一个正整数n,接下 ...
- Delphi 三层框架 DataSnap 的服务器端设置
elphi 三层框架 DataSnap 的服务器端设置: DataSnap 框架有三个模块:DataSnap Server,Server Module,DataSnap Client Module. ...
- CGI,FastCGI,PHP-CGI与PHP-FPM区别详解【转】
CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上. CGI可以用任何一 ...
- Linux下编写和加载 .ko 文件(驱动模块文件)
一..ko 文件介绍 .ko文件是kernel object文件(内核模块),该文件的意义就是把内核的一些功能移动到内核外边, 需要的时候插入内核,不需要时卸载. 二.优点 (1)这样可以缩小内核体积 ...
- java 解压缩 中文名称问题
public List<String> unZip(String pathString, String zipPathString) { long startTime = System.c ...
- <context:annotation-config />和 <context:component-scan
<context:annotation-config />和 <context:component-scan>同时存在的时候,前者会被忽略. 也就是那些@autowire,@r ...
- MySQL--表操作(约束条件foreign key关联表 多对1,多对多,1对1)
一.所有数据都存放于一张表中的弊端:1.表的组织结构复杂不清晰2.浪费空间3.扩展性极差 解决方案:分表a.分表 + foreign key: 有硬性限制(关联表中的关联字段内容必须来自于被关联表), ...
- 解决ssh登陆很慢的问题
解决步骤: 先备份/etc/ssh/sshd_config,备份命令为 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 1.su (以root用户登录 ...
- 转载:HBuilder常用快捷键
原文:http://www.cnblogs.com/DCL1314/p/8625110.html HBuilder常用快捷键 1.文件 新建 Ctrl + N 关闭 Ctrl + F4 全部关闭 Ct ...
- 借助dubbo-admin来管理你的服务
1. Github上下载最新的dubbo源码包并解压 2. 修改配置信息(打开 dubbo-admin/src/main/webapp/WEB-INF下的dubbo.properties,修 ...