求助!题一道
+----+------+--------+----------------+----------------+--------+
| id | pid | rootid | title | cont | isleaf |
+----+------+--------+----------------+----------------+--------+
| 1 | 0 | 1 | 蚂蚁大战大象 | 蚂蚁大战大象 | 1 |
| 2 | 1 | 1 | 大象被打趴下了 | 大象被打趴下了 | 1 |
| 3 | 2 | 1 | 蚂蚁也不好过 | 蚂蚁也不好过 | 0 |
| 4 | 2 | 1 | 瞎说 | 瞎说 | 1 |
| 5 | 4 | 1 | 没有瞎说 | 没有瞎说 | 0 |
| 6 | 1 | 1 | 怎么可能 | 怎么可能 | 1 |
| 7 | 6 | 1 | 怎么没有可能 | 怎么没有可能 | 0 |
| 8 | 6 | 1 | 可能性很大 | 可能性很大 | 0 |
| 9 | 2 | 1 | 大象进了医院 | 大象进了医院 | 1 |
| 10 | 9 | 1 | 护士是蚂蚁 | 护士是蚂蚁 | 0 |
+----+------+--------+----------------+----------------+--------+
完成:将表中数据按以下方式排列
--蚂蚁大战大象
-- 大象被打趴下
-- 蚂蚁也不好过
-- 瞎说
-- 没有瞎说
-- 大象进医院了
-- 护士是蚂蚁
-- 怎么可能
-- 怎么没有可能
-- 可能性是很大的
我的部分代码:
public static void main(String[] args) {
rs = stmt.executeQuery("select * from article where id = rootid");
if(rs.next()) {
int id = rs.getInt("id");
int level = 2;
new TestMySql().p(id, level);
}
}
public void p(int id, int level) {
try{
while(rs1.next()) {
for(int i=0; i<level;i++){System.out.print(" ");}
int isleaf = rs1.getInt("isleaf");
if(isleaf == 0){
System.out.println((rs1.getInt("id")));
}else{
int p_id = rs1.getInt("id");
System.out.println(p_id);
p(p_id, level+2);
}
}
}catch(SQLException e) {
e.printStackTrace();
}
}
为什么递归到“id=5”就退出了?