dbutils返回键值对 - 全栈笔记

dbutils返回键值对

任亦伟 JAVA 2015-04-13 54 次浏览 没有评论

dbutils好像没有直接返回键值对的形式的handler,因为在数据库保存的是键值对的配置,如下图

sqlitekeyvalue

所以需要直接返回一个以key为键名,以value为值的Map类型数据,具体实现如下:

1、自定义一个handler

01
02
package com.renyiwei.handlers;
03
 
04
import java.sql.ResultSet;
05
import java.sql.SQLException;
06
import java.util.HashMap;
07
import java.util.Map;
08
 
09
import org.apache.commons.dbutils.ResultSetHandler;
10
 
11
public class KeyValueHandler implements ResultSetHandler<Map<String, String>> {
12
 
13
  private String key;
14
  private String value;
15
 
16
  public KeyValueHandler() {
17
    this.key = "key";
18
    this.value = "value";
19
  }
20
 
21
  public KeyValueHandler(String key, String value) {
22
    this.key = key;
23
    this.value = value;
24
  }
25
 
26
  @Override
27
  public Map<String, String> handle(ResultSet rs) throws SQLException {
28
    Map<String, String> keyValueMap = new HashMap<String, String>();
29
    while (rs.next()) {
30
      //将每一列的key作为返回值map的键名,value作为返回值map的值
31
      keyValueMap.put(rs.getString(key), rs.getString(value));
32
    }
33
    return keyValueMap;
34
  }
35
 
36
}
37
 
38

2、在利用QueryRunner查询时传入KeyValueHandler对象

1
2
String sql = "select key,value from global";
3
return qr.query(sql, new KeyValueHandler("key", "value"));
4

发表评论

回顶部