您的位置:首页 > 编程语言 > Java开发

【学习摘记】马士兵bbs改良版_课时32_删除帖子_1——删除的递归以及相关处理,依旧是难点

2017-09-19 17:33 387 查看
【课时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)
 
【反馈】
不容易,终于在累的时候学会该马虎的地方就马虎了——【杂记】简略处理
以及,有增加就有删除,如此才能达到平衡。删除必不可少。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐