本文主要是介绍以LinkedHashMap和ArrayList的结合使用,返回一个类似记录集的ArrayList,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通过LinkedHashMap和ArrayList的结合使用,将传入方法中的SQL查询语句存在一个包含多个LinkedHashMap的ArrayList返回。类似将一个查询的记录集返回一样。
LinkedHashMap是一个有链接的HashMap,即键值对的次序是插入的次序。
getConn();方法为一个连接数据库方法。
//*************************** 查询数据 ******************************//
/**
*
* @param selectSQL:要查询的SQL语句
* @return:ArrayList数据集,里面包含hashMap
*/
public static ArrayList getDataList(String selectSQL)
{
ArrayList<LinkedHashMap <String, Object>> al = new ArrayList<LinkedHashMap <String, Object>>();
try {
getConn();//连接到数据库中
stmt = conn.createStatement();
rs = stmt.executeQuery(selectSQL);
rsmd = rs.getMetaData();
while(rs.next())
{
//HashMap<String, Object> map = new HashMap<String, Object>();
LinkedHashMap map = new LinkedHashMap ();/每循环一次/实例化一个Map。
for(int i=1; i<=rsmd.getColumnCount(); i++)
{
map.put(rsmd.getColumnName(i), rs.getObject(rsmd.getColumnName(i)));
}
al.add(map);//将MAP添加到ArrayList中.
}
} catch (Exception e) { e.printStackTrace();}
finally
{
try {
if(!conn.isClosed())//如果接连未关闭
{
rs.close();
stmt.close();
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return al;
}
//**********************************取ArrayList里的值。
由于返回的是一个ArrayList,而ArrayList所包含的是LinkedHashMap,所以将ArrayList集合遍历一次,在每一次的遍历中再取出其包含的LinkedHashMap.对于Map可通过KeySet()方法取出在LinkedHashMap 中的所有关键字,实现的代码如下:
for(int i=0;i<list.size();i++)
{
map = (LinkedHashMap)list.get(i);
for(int j=0;j<map.keySet().size();j++)
{
System.out.println(map.get(map.keySet().toArray()[j]));
}
}
这篇关于以LinkedHashMap和ArrayList的结合使用,返回一个类似记录集的ArrayList的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!