以LinkedHashMap和ArrayList的结合使用,返回一个类似记录集的ArrayList

本文介绍了一种使用LinkedHashMap和ArrayList结合的方式处理SQL查询结果的方法。通过实例化LinkedHashMap存储查询结果,并将其添加到ArrayList中形成数据集。此外,还提供了从返回的ArrayList中提取LinkedHashMap及其中数据的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过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]));
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值