请看本节代码哪里有错?
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import entity.Items;
import util.DBHelper;
//商品的业务逻辑类
public class ItemsDAO(){
//创建返回值为ArrayList<Items> 泛型的方法,获得商品的所有的信息
public ArrayList<Items> getAllItems()
{Connection conn=null;
PreparedStatement stmt=null;
ResultSet rs=null;
//由于方法返回的是ArrayList类型的,需要一个容器,即商品集合
ArrayList<Items> list=new ArrayList<Items>();
try
{//获得连接对象
conn=DBHelper.getConnection();
//写个SQL语句,从表中获得商品的所有的信息
String sql="select * from items";
//然后创建一个连接对象,把传进去,不需要任何参数。
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.setPrice(rs.getInt("price"));
item.setPicture(rs.getString("picture"));
//初始化完成以后,加到集合里
list.add(item);
}
return list;//返回集合
}catch(Exception ex)
{ex.printStackTrace();
return null;
}finally
{//释放资源,从小到大释放,
//首先释放数据集,接着释放预期对象,连接对象不要释放,因为这是一个单例模式
//关闭我们的数据集对象
if(rs!=null)
{
try{ rs.close();
rs=null;
}catch(Exception ex)
{
ex.getStackTrace();
}
}
//关闭我们的预期语句对象
if(stmt!=null)
{
try{ stmt.close();
stmt=null;
}catch(Exception ex)
{
ex.getStackTrace();
}
}
}
}
}