有时做些小程序时不想使用重型的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进行封装,算是写个迭代器吧。
迟点再上贴!