java result 放入map_将ResultSet结果集中的记录映射到Map对象中

这段代码展示了如何将数据库查询结果集(ResultSet)中的每一行数据映射到Map对象中,主要处理了各种基本类型及特殊类型的字段,如String、Integer、Timestamp等,对于不常见或特定数据库供应商的类型,则以Object存储。
摘要由CSDN通过智能技术生成

以下是 _recordMappingToMap的源代码:/**

* 将ResultSet结果集中的记录映射到Map对象中.

*

* @param fieldClassName 是JDBC API中的类型名称,

* @param fieldName 是字段名,

* @param rs 是一个ResultSet查询结果集,

* @param fieldValue Map对象,用于存贮一条记录.

* @throws SQLException

*/

private void _recordMappingToMap(String fieldClassName, String fieldName, ResultSet rs, Map fieldValue) throws SQLException {

fieldName = fieldName.toLowerCase();

//优先规则:常用类型靠前

if (fieldClassName.equals("java.lang.String")) {

String s = rs.getString(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.lang.Integer")) {

int s = rs.getInt(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);//早期jdk需要包装,jdk1.5后不需要包装

}

} else if (fieldClassName.equals("java.lang.Long")) {

long s = rs.getLong(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.lang.Boolean")) {

boolean s = rs.getBoolean(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.lang.Short")) {

short s = rs.getShort(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.lang.Float")) {

float s = rs.getFloat(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.lang.Double")) {

double s = rs.getDouble(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.sql.Timestamp")) {

java.sql.Timestamp s = rs.getTimestamp(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.sql.Date") || fieldClassName.equals("java.util.Date")) {

java.util.Date s = rs.getDate(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.sql.Time")) {

java.sql.Time s = rs.getTime(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.lang.Byte")) {

byte s = rs.getByte(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, new Byte(s));

}

} else if (fieldClassName.equals("[B") || fieldClassName.equals("byte[]")) {

//byte[]出现在SQL Server中

byte[] s = rs.getBytes(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.math.BigDecimal")) {

BigDecimal s = rs.getBigDecimal(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.lang.Object")

|| fieldClassName.equals("oracle.sql.STRUCT")) {

Object s = rs.getObject(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.sql.Array")

|| fieldClassName.equals("oracle.sql.ARRAY")) {

java.sql.Array s = rs.getArray(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.sql.Clob")) {

java.sql.Clob s = rs.getClob(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else if (fieldClassName.equals("java.sql.Blob")) {

java.sql.Blob s = rs.getBlob(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

} else {//对于其它任何未知类型的处理

Object s = rs.getObject(fieldName);

if (rs.wasNull()) {

fieldValue.put(fieldName, null);

} else {

fieldValue.put(fieldName, s);

}

}

}说明一点,对于一些极少数未知的数据库供应商特有的Java类类型的数据将以Object类型保存在Map对象中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值