根据SQL查询返回一个List对象方法

该博客介绍了一个Java方法,用于根据SQL查询返回一个List对象。方法通过DBConnectionFactory获取数据库连接,创建PreparedStatement执行SQL,将查询结果转换为List<Map>,其中Map的键为列名,值为对应的列数据。在测试部分展示了如何遍历List并打印出Map中的字段值。
/**
* 根据SQL查询返回一个List对象 <br>
* @param Sql <br>
* @return <br>
*/
public static List getListBySQL(String Sql){
ResultSet rs = null;
PreparedStatement ps = null;
Connection conn = null;
List<Map> list = new ArrayList<Map>();

try {
conn = DBConnectionFactory.getInstance().getConnection();// 获得数据库连接
ps = conn.prepareStatement(Sql);
rs = ps.executeQuery();

if (rs == null) return Collections.EMPTY_LIST;

ResultSetMetaData rsmd = rs.getMetaData(); // 得到结果集(rs)的结构信息,比如字段数、字段名等
int columnCount = rsmd.getColumnCount(); // 返回此 ResultSet 对象中的列数

while (rs.next()){
Map<String, Object> rowData = new HashMap<String, Object>();
for (int i = 1; i <= columnCount; i++) {
rowData.put(rsmd.getColumnName(i), rs.getObject(i)); // 循环列,将列数据放入到map对象中去
}
list.add(rowData);// 循环行数,将每一行的数据添加到list对象中去
}
} catch (SQLException sqle) {
log.error("根据SQL查询出现异常",sqle);
}finally{
DBConnectionPool.freeConnection(rs, ps, conn);// 释放指定的数据库访问对象资源
}
return list;
}



/**
* 测试返回的List值
* @param sql
* @throws SQLException
* 从list中取出值
*/
public void testReturnList(String sql) throws SQLException{
List resultList = getListBySQL(sql);
Iterator it = resultList.iterator();
while(it.hasNext()) {
Map values = (Map)it.next();
System.out.println(values.get("字段名"));
}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值