如何从数据库读取两个字段存储到map中
之前自己一直接触的仅仅需要从数据库读取一个字段到java中,因此只需要定义一个动态数组ArrayList,将ResultSet中的结果存储到该动态数组中即可。而现在需要从数据库读入两个字段,在此简要描述一下如何从数据库读取两个字段的值,并存储到map中。代码如下:
try {
Class.forName(driver); //加载数据库驱动
Connection conn=DriverManager.getConnection(URL, USER, PASSWORD); //连接数据库
Statement st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); //
ResultSet rs=st.executeQuery(sql); //执行sql查询,并将查询结果存放在ResultSet结果集中
ResultSetMetaData data = rs.getMetaData();
List<String> tel = new ArrayList<String>(); //定义一个ArrayList,用于将结果集ResultSet中的字符串数据存放到数组tel中来
ArrayList<HashMap<String, String>> al = new ArrayList<HashMap<String, String>>(); //定义一个ArrayList,用于将结果集ResultSet中的字符串数据存放到数组al中
try {
while(rs.next()) { //判断字符串是否为空
HashMap<String, String> map = new HashMap<String, String>();
if(rs.getString("aa") != null) {
for(int i = 0; i <= data.getColumnCount(); i++) {
String k = rs.getString(1);
String v = rs.getString(2);
// System.out.println(k + "," + v); //该句代码用于测试是否已根据时间范围将两个字段读取并存储到了map中
map.put(k, v);
}
al.add(map);
}
}catch(NullPointerException e){
e.printStackTrace();
}
catch(Exception e){
e.printStackTrace();
}
需要注意的是,程序需要添加以下包:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;