为了账号安全,请及时绑定邮箱和手机立即绑定

关闭结果集rs和statement以后,是否还要关闭数据库连接呢?

public class ItemsDAO {
	/*获得所有商品*/
	public ArrayList<Items> getAllItems(){
		Connection conn=null;
		PreparedStatement stmt=null;		
		String sql="select * from shop";
		ResultSet rs=null;
		ArrayList<Items> list=new ArrayList<Items>();
		try
		{
			conn=DBHelper.getConnection();
			stmt=conn.prepareStatement(sql);
			rs=stmt.executeQuery();
			while(rs.next())
			{
				Items item=new Items();
				item.setId(rs.getInt("id"));
				item.setName(rs.getString("name"));
				item.setCity(rs.getString("city"));
				item.setNumber(rs.getInt("number"));
				item.setPicture(rs.getString("picture"));
				item.setPrice(rs.getInt("price"));
				list.add(item);
			}
			return list;
		}catch(Exception ex)
		{
			ex.printStackTrace();
			return null;
		}finally
		{
			/*释放结果集*/
			if(rs!=null)
			{
				try
				{
					rs.close();
				}
				catch(Exception ex)
				{
					ex.printStackTrace();
				}
			}
			/*释放statement*/
			if(stmt!=null)
			{
				try
				{
					stmt.close();
				}
				catch(Exception ex)
				{
					ex.printStackTrace();
				}
			}
			/*是需要释放数据库连接呢?老师讲解时,没有提到这一点*/
			if(conn!=null)
			{
				try
				{
					conn.close();
				}
				catch(Exception ex)
				{
					ex.printStackTrace();
				}
			}
		}
	}

后面的两个方法getItemsById和getItemsByList里面还要重新建立连接的。每次执行方法之后,要不要关闭呢?

正在回答

2 回答

如果是单例模式就不能释放数据库的链接对象,如果不是单例模式可以释放。

1 回复 有任何疑惑可以回复我~
#1

小羊爱主 提问者

非常感谢!
2015-07-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关闭结果集rs和statement以后,是否还要关闭数据库连接呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信