while (rs.next())//如果存在相同号,则设置更新的SQL语句
   {
//out.println("hahhahah");
            ResultSetMetaData rsmd=rs.getMetaData();
            int in=0;
String s="";
        for(int i=0;i<id.length;i++)
           { 
   int intId = Integer.parseInt(id[i]);
               String base_col=rsmd.getColumnName(intId);//取出数据库中的字段的名称
   //out.println(base_col);
               sqld = ""+base_col+"= '"+array[intId-1]+"'"+",";
        //out.println(sqld);
   s=s+sqld;
   
               //out.println(sql_min);
      }
s=s.substring(0,s.length()-1); sql_col="UPDATE client SET "+s+"where insur_code='"+ins_code+"'";
            //out.println(sql_col);
pstmt = con.prepareStatement(sql_col);
           
pstmt.executeUpdate(); 
                           pstmt.close();
                           pstmt=null;    

   }

解决方案 »

  1.   

    我帮你看看,好像不是上面的原因,
    好象是rs美关掉,又打开一个rs
      

  2.   

    你可以使用2个不同的connection 对象,2个不同的prepareStatement对象
    应该就可以解决问题了
      

  3.   

    你可以使用2个不同的connection 对象,2个不同的prepareStatement对象
    应该就可以解决问题了支持!
    检查看看你的con.prepareStatement(sql_col);和rs是不是用的同一个Connection
      

  4.   

    出现连接占线是因为某个Connection所创建的Statement在执行完sql语句后没有close(),而你又用这个Connection创建另一个Statement,并且用它执行sql。