finally释放资源
释放数据集和语句资源
public ArrayList<Items> getAllItems()方法中泛型Item就是前面entity包中所建的类Items,作为集合返回值的数据类型,两者应保持一致,且应该导入 entity.Items包。
rs.next是如果有下一行,言外之意就是一次读取一行;
rs.getXxx("字段名"),一次只读取一个字段名所对应的一个值,而不是字段名对应的一列值,因为是逐行读取。
list.add(item);//由于要将商品添加到集合中去,所以首先要实例化集合list
ArrayList<items> list=new ArrayList<items>();//泛型item是前面创建的实体类,作为集合的类型
while循环做了三件事,首先将从数据库中逐行读取数据,读取一行数据即读取一个item(商品),然后再把这些属性封装起来,即封装一个item(商品),最后再把每一个item放到list集合当中去。
Connection conn = null; 连接对象 PreparedStatement stmt = null; 语句对象 ResultSet rs = null; 结果集对象 ArrayList<Items> list = new ArrayList<Items>();//商品集合 Items item = new Items(); new一个item对象 item.setId(rs.getInt("id")); 从resultset中获取值
Connection conn = null; 连接对象
PreparedStatement stmt = null; 语句对象
ResultSet rs = null; 结果集对象
ArrayList<Items> list = new ArrayList<Items>();//商品集合
Items item = new Items(); new一个item对象item.setId(rs.getInt("id")); 从resultset中获取值
JDBC的知识补充: Connection conn=null //获取连接 PreparedStatement ptmt=null /*存放连接和执行SQL(批量处理-预编译加快数据库访问速度) ptmt=conn prepanredStatement(SQL语句)--创建ptmet(不直接执行) ptmt.executeQuery(); */ Statement stmt=null /*存放连接和执行SQL(一次性处理) stmt=conn.createStatement() //创建Statement(直接执行) rs=stmt.executeQuery("SQL查询语句") //执行并传递结果 */ ResultSet rs=null // 存放执行语句结果,数据集 资源释放顺序 rs.close->ptmt.close->conn(一般释放,释放了就无法再继续使用)
dao包为持久层包
商品信息初始化
while(rs.next)//如果有下条记录
、
数据库导出各属性代码案例