【学习摘记】马士兵bbs改良版_课时32_删除帖子_1——删除的递归以及相关处理,依旧是难点
【课时32】删除帖子_1——删除的递归以及相关处理,依旧是难点
【视频时长】40min
【所用时间】205min
【尝试】30min 12:05-12:20 & 1:40-1:55
【视频】140min 2:00-4:20
【整理笔记】35min 5:15-5:50
【自己尝试】删除帖子
增加删除按钮,一点击就删除(在flat页面)
本想在flat页面,但是发现删除要涉及到子帖,要用到递归,所以还是在article。
创建Delete.jsp。仿照article(因为tree)
删除函数的算法思路:
先删除他自己,再删除所有pid是他的,继续删,直到所有的叶节点都被删除。
怎么用代码表达?
【笔记整理】
果不其然,一上来就讲到了在flat和article删除的不同。
flat:delete from article where rootid = id
article: delete( )递归函数
故,后者难很多。
1、delete( )递归函数——先删叶节点的孩子,再依次向上,最后删自己
PS1:判断是否有孩子,从而确定是否直接删除自身
需要isLeaf,与其之后再取isleaf属性,不如开始就传参数
PS2:此时在DB中增加executeUpdate
但,executeQuery却不能这样写:
2、删除帖子之后,还要考虑父亲节点的isLeaf字段是否更新
①这个时候,如何表示出父id?
与其之后再取pid属性,不如开始就传参数
②把更新pid的isLeaf的代码放在哪?
“整体的删除语句”后。
【没有十全十美】你增加了一些冗余字段,查询的时候方便了,但是,同时带来的是,更改删除的时候,一定不会很方便。
3、事务处理
conn.setAutoCommit(false);
conn.commit();
conn.setAutoCommit(true);
【sql精进】看console-sql语法-打印sql语句-DBbrowser查看-sql教程查标准语句
【杂记】
1、没娘的孩儿(03:30 )
2、现在是问题,练多了也就不是问题了。(19:17 )
3、寿终正寝的元老(24:30)
【反馈】
不容易,终于在累的时候学会该马虎的地方就马虎了——【杂记】简略处理
以及,有增加就有删除,如此才能达到平衡。删除必不可少。