Connection is closed

错误代码如下:

错误代码如下:

package cn.com.servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.com.jdbc.JdbcUtils_DBCP;
import cn.com.pack.StringSeven;
public class BMI_Servlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doPost(request, response);
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//第一阶段
              //查询数据库里面有的心率血压指标
		//查询数据库有心率血压而且不重复的编号,
		String sql="SELECT DISTINCT number FROM yh WHERE xl<>'255' AND xl<>'0' AND lpower<>'255'";
		//使用连接
		//初始化
		Connection conn=null;
		PreparedStatement st=null;
		ResultSet rs=null;
		List<String> list=new ArrayList<String>();
		try {
		//与数据库建立连接
			conn=JdbcUtils_DBCP.getConnection();
			st=conn.prepareStatement(sql);
			rs=st.executeQuery();
			//把结果集放在一个集合里面,因为涉及多个rs的时候尤其是彼此之间有关联,最好分开,以免出错导致连接不能释放,数据库连接数满
			while(rs.next()){
				String number=rs.getString(1);
				list.add(number);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			//关闭连接
			JdbcUtils_DBCP.release(conn, st, rs);
		}
		
		//第二阶段	
		//根据num查询心率血压
		//使用连接
				//初始化
				Connection conn1=null;
				PreparedStatement st1=null;
				ResultSet rs1=null;
				//初始化
				Connection conn2=null;
				PreparedStatement st2=null;
				ResultSet rs2=null;
				String name=null;
				String xl=null;
				String lpower=null;
				String upower=null;
				String time=null;
				List<StringSeven> String_sex=new ArrayList<StringSeven>();
		for (String i : list) {
			String sql1="SELECT * FROM yh WHERE number='"+i+"' AND xl<>'255' AND xl<>'0' AND lpower<>'255' ORDER BY TIME DESC LIMIT 1";	
			//与数据库建立连接
			try {
				conn1=JdbcUtils_DBCP.getConnection();
				st1=conn.prepareStatement(sql1);
				rs1=st.executeQuery();
				while(rs1.next()){
				xl=rs1.getString(3);	
				lpower=rs1.getString(4);	
				upower=rs1.getString(5);	
				time=rs1.getString(8);
				//根据编号查询名称
				String sqls="select name from person_info where number='"+i+"'";
				conn2=JdbcUtils_DBCP.getConnection();
				st2=conn.prepareStatement(sqls);
				rs2=st.executeQuery();
				if(rs2.next()){
					name=rs2.getString(1);
				}
				JdbcUtils_DBCP.release(conn2, st2, rs2);
				}
				
				StringSeven sex=new StringSeven(name, i, xl, lpower, upower, time);
				String_sex.add(sex);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				JdbcUtils_DBCP.release(conn1, st1, rs1);
			}
			
			
		}
		//最后一个阶段 封装 跳转界面
		request.setAttribute("list", String_sex);
		request.getRequestDispatcher("Scheduling.jsp").forward(request, response);
	
	}



}

 我该关闭的都关闭了啊,不知道怎么回事,报错?

错误原因-写法错误:

conn已经关闭了,conn1建立连接,但是用的还是conn,所以程序报错

 

conn2也是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_37591637

请给我持续更新的动力~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值