有时做些小程序时不想使用重型的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
- 浏览 4877
- 评论(8)
- 论坛回复 / 浏览 (7 / 8905)
- 查看更多
相关推荐
<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...
commons-dbutils包是Apache开源组织提供的用于操作数据库的工具包。...MapListHandler :将ResultSet中所有的数据存成List<Map<String,Object>> ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object
Map<String, List<ExcelMap>> dbfield) { List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>(); HashMap<String, Object> datamap = null; DealForeign deal = null; // ...
查询出列表,也就是返回list, 在我们这个例子中也就是 List<User> , 这种方式返回数据,需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType, 而这个resultMap 所对应的应该是我们自己配置的 ...
<select id="getByLike" resultClass="Account" parameterClass="Account" cacheModel="categoryCache"> select ACC_ID as id, ACC_FIRST_NAME as firstName, ACC_LAST_NAME as lastName, ACC_EMAIL as ...
public List<User> getUserLists(Map<String, Object> map) { return null; } @Override public Integer getUserCount(Map<String, Object> map) { String sql = "select count(1) from User where id=? ...
public Map<Integer, String> getAllSupplier() { Map supplierData = new HashMap();//基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作 String sql = "select sup_id,sup_name,sup_address,postcode...
Map<Integer,List<Board>> findAllBoard(); /** * 根据版块id查找版块 * * @param boardId * @return */ Board findBoard(int boardId); } /*完成论坛用户数据层的操作 * */ public class ...
具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 Clob 类型. java.sql.Blob, Byte[], byte[] 和 serializable type 将被持久化为 Blob 类型。 @Lob public String getFullText() { ...
组成 JDK包含的基本组件包括: ·javac – 编译器,将源程序转成字节码 ·jar – 打包工具,将相关的类文件打包成一个文件 ·javadoc – 文档生成器,从源码注释中提取文档 ·jdb – debugger,查错工具 ·java –...
IP地址转化成整数,整数转化成IP地址; 十八为身份证格式验证;表达式解析器;字符串编码的转换;字符串对齐器;密码加密和验证(MD5); 制作命令行程序;使用正则表达式操作字符串;使用正则表达式验证电话号码的...
11.3 List接口实现类277 11.3.1 实现类ArrayList277 11.3.2 实现类LinkedList279 11.3.3 实现类Vector281 11.4 Map接口283 11.4.1 实现类HashMap284 11.4.2 实现类LinkedHashMap285 11.4.3 实现类TreeMap286 11.4.4 ...
7.2.4 参数列表(Parameter List) 159 7.2.5 方法体(Method Body) 160 7.2.6 方法串串烧 160 7.3 方法的参数:让汽车加速 161 7.3.1 方法的参数:让汽车可以加速 161 7.3.2 带参数的方法有何不同? 162 ...
7.2.4 参数列表(Parameter List) 159 7.2.5 方法体(Method Body) 160 7.2.6 方法串串烧 160 7.3 方法的参数:让汽车加速 161 7.3.1 方法的参数:让汽车可以加速 161 7.3.2 带参数的方法有何不同? 162 ...
031706_【第17章:Java数据库编程】_ResultSet接口笔记.pdf 031707_【第17章:Java数据库编程】_PreparedStatement接口笔记.pdf 031708_【第17章:Java数据库编程】_处理大数据对象(1)—处理CLOB数据笔记.pdf ...