if("1".equals(arch_Borrow)){ 
    sql = "Select * From archives where arch_User =\'"+arch_User+"\' and  arch_Borrow = \'"+arch_Borrow+"\'"; 
}else if("2".equals(arch_Borrow)){ 
    sql = "Select * From archives where arch_Borrow = \'"+arch_Borrow+"\'"; 
  
}else{ 
    sql = "Select * From archives where 1=2";  

ResultSet rs = DBConn.archivesQuery(sql); 
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
 <a href="cadre_borrow.jsp?arch_Borrow=1"> <strong> <font color="#FFFFFF">查看借阅申请 </font> </strong> </a>    
          </b> </td> 
                    <td width="214" align="center" valign="center" bgcolor="#799AE1"> <b> 
                              <a href="cadre_borrow.jsp?arch_Borrow=2"> <strong> <font color="#FFFFFF">查看借阅信息 </font> </strong> </a>    
                    </b> </td> 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
while(i <intPageSize && !rs.isAfterLast()){ 
                          String user_host = rs.getString("arch_User"); 
                          String sql_a = "Select * From cadre where user_ID = \'"+user_host+"\'"; 
                          ResultSet rs_a = DBConn.executeQuery(sql_a); 
                          rs_a.next();                     %> 
                    <tr onMouseOver="Cbg(this, '#799AE1')" onMouseOut="Cbg(this, '#FFFFFF')">                  
                        <td align="center"> <b> <%=rs.getString("arch_No")%> </b> </td> 
                        <td align="center"> <b> <%=rs.getString("arch_Mark")%> </b> </td> 
                        <td align="center"> <b> <%=rs.getString("arch_Name")%> </b> </td> 
                        <td align="center"> <b> <%=rs.getString("arch_cardNo")%> </b> </td> 
                        <td align="center"> <b> <%=rs.getString("arch_Birthday")%> </b> </td> 
                        <td align="center"> <b> <%=rs.getString("arch_W_hours")%> </b> </td> 
                        <td align="center"> <b> <%=rs.getString("arch_Plant")%> </b> </td> 
                        <td align="center"> <b> <%=rs.getString("arch_TOW")%> </b> </td> 
                        <td align="center"> <b> <%=rs.getString("arch_Actuality")%> </b> </td> 
                        <td align="center"> <b> <%=rs.getString("arch_Place")%> </b> </td> 
                        <td align="center"> <b> <%=rs.getString("arch_Company")%> </b> </td> 
                        <td align="center"> <b> <%=rs_a.getString("user_Name")%> </b> </td> 
                    </tr> 
                              <% 
                        rs.next(); 
                        i++; 
                    } 
while()中是否应该加入:rs_a.close();
在这个文件地结束是否应该加入这三句话?
rs.close();
stmt.close();
conn.close();
可是点多了“查看借阅信息”“查看借阅申请”,这个页面还是发送到这个页面,服务器就会变慢,各位高手帮帮忙,看是那里地问题

解决方案 »

  1.   

    你程序中的几个问题:
    1、sql中的单引号没必要转义。想避免SQL注入,需要使用PreparedStatement而不是Statement。
    2、你的rs.next()调用了两次,这样你的数据读取将会隔行丢失。
    3、操作完毕之后,ResultSet、Statement、Connection等各个与数据库连接有关的对象都必须关闭。否则你的程序用不了几分钟就会崩溃。
      

  2.   

    1、sql中地引号估计是粘贴中出错了,其实没有那个单引号地,“避免SQL注入”是什么意思啊不明白?2、rs.next()只调用了一次,while中还有一个是rs_a.next(),这个是查询用户名的,我在while()中
                                  <% 
                            rs.next(); 
                            i++; 
                        } %》 加入了ResultSet、Statement、Connection地关闭语句
    结尾也是,可是while中加入后只是可以多点击几次,点地多了还是页面没有反映,好像是数据库没有反映,服务器没有问题。我用地access数据库。3、操作完毕我都关闭了,请问数据库连接池好用了,能推荐本书看看不?谢谢loveyt 感谢