这是我的一道面试题 ,大家帮忙?主键   名称   
ID    Name  ParentId 中国
  |-河北
      |-石家庄
  |-湖北
  
这样效果,可以折叠,点击前面图标,还有就是下拉列表显示。1 利用递归实现?
2 利用存储过程实现?
3 利用添加字段实现?

解决方案 »

  1.   

    刚发现,不是有ParentId 了么,还需要添加什么字段啊?
    3真是奇怪的选择\( ̄一 ̄) o
      

  2.   

    ParentId 用这个就可以解决了
    要不然要这个干什么啊
      

  3.   

    SQL> select * from test_tree;
     
    ID         NAME                     PARENTID
    ---------- ------------------------ ----------
    01         中国                     
    0101       河北                     01
    010101     石家庄                   0101
    0102       湖北                     01create or replace procedure proc_tree (in_id in varchar2)
    Is 
    CURSOR cur IS select a.*,level from test_tree a start with id= in_id connect by prior id = parentid; 
    Begin 
      FOR cur_result in cur LOOP 
        BEGIN 
         dbms_output.put_line(cur_result.id ||' '||cur_result.name ||' '||cur_result.parentid ||' '||cur_result.level);
        End; 
      END LOOP; 
    EXCEPTION 
      WHEN OTHERS THEN 
        NULL; 
    End proc_tree; 
      

  4.   

    jsp中循环存储数据可以实现吧 让我选我选1
      

  5.   

    使用Ajax技术,点击到哪一个,将它的id通过js的方式传递到servlet中,然后调用相应的方法。
    改方法中的使用:select * form city(表名称)where parentId = id ;
    将得到的list集合再次设置到request属性范围中,
    最后再该页面中从request属性中取得该list,再通过<select ....></select>在相应的位置迭代出来就ok了。
    当然,我只是告诉给你一个思路,主体实现还是要靠你自己来完成。好运。