//遍历文件夹路径
//------------------------------------------用id查询文件夹集合
public List<Docom> chaxun(Integer id)throws ServletException,IOException{
DocomDao ddd = new DocomDao();
List<Docom> list = new ArrayList<Docom>();
Connection conn = null;
try{
conn = util.GetConn.getConnection();
list = ddd.select_upid(id);//用id查询所有子文件夹
if(list.size()>0){
list = suo(list);
}
}catch (Exception e) {
e.printStackTrace();
} finally {
util.GetConn.release(null, null, conn);
}
return list;
}
//---------------------------------------------用集合查询所有子文件夹
public List<Docom> suo(List<Docom> lists){
Connection conn1 = null;
List<Docom> list1 = new ArrayList<Docom>();
DocomDao ddd1 = new DocomDao();
try{
conn1 = util.GetConn.getConnection();
for(int i=0 ; i< lists.size(); i++){
list1 = ddd1.select_upid(lists.get(i).getId());//用id查询所有子文件夹
if(list1.size()>0){
list1 = suo(list1);//调用for外面的函数
list1.addAll(list1);
}
}
}catch (Exception e) {
e.printStackTrace();
} finally {
util.GetConn.release(null, null, conn1);
}
return lists;
}
//-------------------------------------------------------------------
public static void main(String[] args)throws Exception{
List<Docom> list = new ArrayList<Docom>();
DocomServlet doc = new DocomServlet();
list = doc.chaxun(5);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).getId());
}
}这段代码运行后什么都不显示
//------------------------------------------用id查询文件夹集合
public List<Docom> chaxun(Integer id)throws ServletException,IOException{
DocomDao ddd = new DocomDao();
List<Docom> list = new ArrayList<Docom>();
Connection conn = null;
try{
conn = util.GetConn.getConnection();
list = ddd.select_upid(id);//用id查询所有子文件夹
if(list.size()>0){
list = suo(list);
}
}catch (Exception e) {
e.printStackTrace();
} finally {
util.GetConn.release(null, null, conn);
}
return list;
}
//---------------------------------------------用集合查询所有子文件夹
public List<Docom> suo(List<Docom> lists){
Connection conn1 = null;
List<Docom> list1 = new ArrayList<Docom>();
DocomDao ddd1 = new DocomDao();
try{
conn1 = util.GetConn.getConnection();
for(int i=0 ; i< lists.size(); i++){
list1 = ddd1.select_upid(lists.get(i).getId());//用id查询所有子文件夹
if(list1.size()>0){
list1 = suo(list1);//调用for外面的函数
list1.addAll(list1);
}
}
}catch (Exception e) {
e.printStackTrace();
} finally {
util.GetConn.release(null, null, conn1);
}
return lists;
}
//-------------------------------------------------------------------
public static void main(String[] args)throws Exception{
List<Docom> list = new ArrayList<Docom>();
DocomServlet doc = new DocomServlet();
list = doc.chaxun(5);
for(int i=0;i<list.size();i++){
System.out.println(list.get(i).getId());
}
}这段代码运行后什么都不显示
解决方案 »
- Mybatis 问题,模仿使用手册里的自己写了一个,就是报错
- mysql数据表备份和恢复
- 迷茫了~~~~ 学完SSH 不知道学什么了 高手请帮忙
- common-logging和log4j一起使用,老是说找不到log4j配置文件
- 读取blob时,报AbstractMethodError
- SocketServer怎么批量获取网络摄像机图片
- 我编了一个连接数据库的程序,编译可以通过,但运行是总是得不到结果,请高手指教
- 问一个很菜很菜的问题:java,jdk,jbdk,jsp,j2ee,j2se,ejb,jms,java bean,jdeveloper,jbulder这一大堆东东,到底有什么区别?
- Where can i fand a downloadable J2EE's Class Hierarchy Diagrams
- 扫描不到jar包内的注解
- 高手进来解答
- jsp获取客户端浏览器版本(firefox取不到?)
Connection conn1 = null;
List <Docom> list1 = new ArrayList <Docom>();
DocomDao ddd1 = new DocomDao();
try{
conn1 = util.GetConn.getConnection();
for(int i=0 ; i < lists.size(); i++){
list1 = ddd1.select_upid(lists.get(i).getId());//用id查询所有子文件夹
if(list1.size()>0){
list1 = suo(list1);//调用for外面的函数
list1.addAll(list1);
} }
}catch (Exception e) {
e.printStackTrace();
} finally {
util.GetConn.release(null, null, conn1);
}
return list1;
} 原程序这里是 return list1;
1:conn1在哪用到了?
2:list1 = suo(list1);//调用for外面的函数
list1.addAll(list1);
你这是要做什么?list1加一倍?
//---------------------------------------------用集合查询所有子文件夹
public List <Docom> suo(List <Docom> lists){
Connection conn1 = null;
List <Docom> list1 = new ArrayList <Docom>();
DocomDao ddd1 = new DocomDao();
try{
conn1 = util.GetConn.getConnection();
for(int i=0 ; i < lists.size(); i++){
list1 = ddd1.select_upid(lists.get(i).getId());//用id查询所有子文件夹
if(list1.size()>0){
list1 = suo(list1);//调用for外面的函数
list1.addAll(list1); } }
}catch (Exception e) {
e.printStackTrace();
} finally {
util.GetConn.release(null, null, conn1);
}
return lists;
}
List<Docom> list1 = new ArrayList<Docom>();
List<Docom> list2 = new ArrayList<Docom>();
DocomDao ddd1 = new DocomDao();
try{
for(int i=0 ; i< lists.size(); i++){
list1.addAll(ddd1.select_upid(lists.get(i).getId())) ;
if(list1.size()>0){
list2.addAll(suo(list1)); //调用for外面的函数
list1.addAll(list2);
}
}
}catch (Exception e) {
e.printStackTrace();
}
return list1;
}
我改了一下,可以查到了,但到第三层的时候重复的太多了
List<Docom> list1 = new ArrayList<Docom>();
List<Docom> list2 = new ArrayList<Docom>();
List<Docom> list3 = new ArrayList<Docom>();
DocomDao ddd1 = new DocomDao();
try{
for(int i=0 ; i < lists.size(); i++){
list1 = ddd1.select_upid2(lists.get(i).getId());
list3.addAll(list1);
if(list1.size()>0){
list2 = (suo(list1));//并不是调用for外面的函数,而是继续向深层调用
list3.addAll(list2);
}
}
}catch (Exception e) {
e.printStackTrace();
}
return list3;
}
第二天了,终于搞懂了,查询的一个不多,一个不少。很好,很迅速