有时做些小程序时不想使用重型的ORM框架。
只是查查表与改一改表。
现在想做的程序是需要将jdbc封装起来,不让人家感到有jdbc的存在。
改表就容易,传个sql与返回个影响记录的行数就Ok了
查表就麻烦多了,因为数是二维的,还有列名等。所以我便用了集合将ResultSet封装起来。
public Map<String, ArrayList<String> > query(String sql){
Map<String, ArrayList<String> > map = new HashMap<String, ArrayList<String> >();
PreparedStatement preStat = null;
try {
preStat = conn.prepareStatement(sql);
ResultSet rs = preStat.executeQuery();
ResultSetMetaData rsMeta = rs.getMetaData();
for(int i = 0; i < rsMeta.getColumnCount(); ++i){
map.put(rsMeta.getColumnName(i+1), new ArrayList<String>());
}
while(rs.next()){
for(int i = 0; i < rsMeta.getColumnCount(); ++i){
String columnName = rsMeta.getColumnName(i+1);
map.get(columnName).add(rs.getString(columnName));
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
preStat.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
其实大家看我代码会认为我新手,没错,我的确是。
还有我参考了TableModel这个类后,觉得需要再对这个Map进行封装,算是写个迭代器吧。
迟点再上贴!
分享到:
- 2009-05-16 09:04
- 浏览 4954
- 评论(8)
- 论坛回复 / 浏览 (7 / 8938)
- 查看更多
相关推荐
public static List<Map<String,Object>> ResultSetToList(ResultSet rs) throws SQLException { List<Map<String,Object>> results = new ArrayList<Map<String,Object>>(); ResultSetMetaData rsmd = rs....
<br>第1章 Java基础 <br>1.1 转换基本数据类型 <br>1.2 Java的运算符 <br>1.3 控制程序的流程 <br>1.4 计算阶乘 <br>1.5 实现命令行程序 <br>第2章 Java面向对象程序设计 <br>2. 1 复数类 <br>2. 2 equals.chashCode...
List<Map<String, String>> columns = new ArrayList<>(); ResultSetMetaData meta = rset.getMetaData(); for (int i = 1; i <= meta.getColumnCount(); i++) { String columnName = meta.getColumnName(i); ...
在Java中实现行转列,通常涉及数据结构的转换,如从List<List<String>>转换为List<String>,或者更复杂地,从Map<String, Object>到自定义对象的集合。以下是一些关键知识点: 1. 数据结构理解: - **List**: Java...
commons-dbutils包是Apache开源组织提供的用于操作数据库的工具包。...MapListHandler :将ResultSet中所有的数据存成List<Map<String,Object>> ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object
List<Map<String, Object>> result = new ArrayList<>(); while (rs.next()) { Map<String, Object> row = new HashMap<>(); for (int i = 1; i <= columnCount; i++) { row.put(md.getColumnName(i), rs....
- **多行多列结果查询(Map形式)**:使用`newMapListProcessor()`将结果集转换成`List<Map<String, String>>`形式。 ```java List<Map<String, String>> result4 = (List<Map<String, String>>) dao.executeQuery...
List<Map<String, Object>> list = new ArrayList<>(); while (rs.next()) { Map<String, Object> map = new HashMap<>(); for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { String key = rs....
List<Map<String, Object>> list = new ArrayList<>(); while (rs.next()) { Map<String, Object> row = new HashMap<>(); // 将结果行填充到Map中 // ... list.add(row); } ObjectMapper mapper = new ...
List<Map<String, Object>> dataList = new ArrayList<>(); while (rs.next()) { Map<String, Object> row = new HashMap<>(); // 填充数据 dataList.add(row); } response.setContentType("application/json...
List<Map<String, Object>> dataList = new ArrayList<>(); while (rs.next()) { Map<String, Object> dataRow = new HashMap<>(); dataRow.put("name", rs.getString("name")); dataRow.put("value", rs.getInt...
本文将详细介绍这一过程,以及如何使用`List<Map<String,List<Map<String,String>>>>`来存储这些查询结果。 #### Oracle数据库表操作 首先,我们来看一下Oracle数据库中的存储过程`COST_PAID`。此过程的主要功能是...
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); ResultSetMetaData md = (ResultSetMetaData) rs.getMetaData(); int columnCount = md.getColumnCount(); while (rs.next()) { Map...
Map<String, List<ExcelMap>> dbfield) { List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>(); HashMap<String, Object> datamap = null; DealForeign deal = null; // ...
List<Map<String, Object>> dataList = new ArrayList<>(); while (rs.next()) { Map<String, Object> dataMap = new HashMap<>(columnCount); for (int i = 1; i <= columnCount; i++) { String columnName =...
Map<String, Object> rowData = new HashMap<>(); for (int i = 1; i <= columnCount; i++) { rowData.put(md.getColumnName(i), rs.getObject(i)); } list.add(rowData); } return list; } ``` 在这个方法中...
- `ArrayListHandler` 和 `MapListHandler` 分别将数据转换为 List<Object[]> 和 List<Map<String, Object>>。 - 其他如 `BeanHandler`, `ColumnListHandler`, `KeyedHandler`, `MapHandler`, `ScalarHandler` 等,...
List<Map<String, Object>> dataList = new ArrayList<>(); try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement()) { ResultSet rs = stmt....
public List<Map<String, Object>> select(String tableName, String condition); // 查询数据 public boolean update(String tableName, Map<String, Object> newData, String condition); // 更新数据 public ...
查询出列表,也就是返回list, 在我们这个例子中也就是 List<User> , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...