实现JDBC结果集的转换(ResultSet和List的转换)
2007-11-19 17:52
405 查看
相关代码
public class DTOPopulator ...{
public static List populate(ResultSet rs,Class clazz) throws Exception...{
ResultSetMetaData metaData = rs.getMetaData(); //取得结果集的元元素
int colCount = metaData.getColumnCount(); //取得所有列的个数
List ret = new ArrayList(); //存放返回结果的容器
Field[] fields = clazz.getDeclaredFields(); //取得业务对象的属性
while(rs.next())...{
Object newInstance = clazz.newInstance(); //构造业务对象实例
//将结果集中每一条记录,每一个字段取出,根据命名规则,对对应的业务对象的属性进行赋值
for(int i=1;i<=colCount;i++)...{ //对于该记录的每一列
try...{
Object value = rs.getObject(i);
for(int j=0;j<fields.length;j++)...{
Field f = fields[j];
if(f.getName().equalsIgnoreCase(metaData.getColumnName(i).replaceAll("_","")))...{
BeanUtils.copyProperty(newInstance,f.getName(),value);
}
}
}catch (Exception e) ...{
// TODO: handle exception
e.printStackTrace();
}
}
ret.add(newInstance);
}
return ret;
}
ResultSetMetaData rsmt=rs.getMetaData();是什么意思?答:得到结果集(rs)的结构信息,比如字段数、字段名等。
String类的replaceAll()方法,第一个参数是一个正则表达式,对于"[abc]abc"字符串,进行replaceAll("[abc]","1");替换之后的结果是:[111]111,正则表达式[abc]表示a,b,c的任何字符.
使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。
此方法调用的 str.replaceAll(regex, repl) 形式产生与以下表达式完全相同的结果:
参数:
返回
创建此 Class 对象所表示的类的一个新实例。
public class DTOPopulator ...{
public static List populate(ResultSet rs,Class clazz) throws Exception...{
ResultSetMetaData metaData = rs.getMetaData(); //取得结果集的元元素
int colCount = metaData.getColumnCount(); //取得所有列的个数
List ret = new ArrayList(); //存放返回结果的容器
Field[] fields = clazz.getDeclaredFields(); //取得业务对象的属性
while(rs.next())...{
Object newInstance = clazz.newInstance(); //构造业务对象实例
//将结果集中每一条记录,每一个字段取出,根据命名规则,对对应的业务对象的属性进行赋值
for(int i=1;i<=colCount;i++)...{ //对于该记录的每一列
try...{
Object value = rs.getObject(i);
for(int j=0;j<fields.length;j++)...{
Field f = fields[j];
if(f.getName().equalsIgnoreCase(metaData.getColumnName(i).replaceAll("_","")))...{
BeanUtils.copyProperty(newInstance,f.getName(),value);
}
}
}catch (Exception e) ...{
// TODO: handle exception
e.printStackTrace();
}
}
ret.add(newInstance);
}
return ret;
}
ResultSetMetaData rsmt=rs.getMetaData();是什么意思?答:得到结果集(rs)的结构信息,比如字段数、字段名等。
String类的replaceAll()方法,第一个参数是一个正则表达式,对于"[abc]abc"字符串,进行replaceAll("[abc]","1");替换之后的结果是:[111]111,正则表达式[abc]表示a,b,c的任何字符.
replaceAll
public String replaceAll(String regex, String replacement)
使用给定的 replacement 字符串替换此字符串匹配给定的正则表达式的每个子字符串。
此方法调用的 str.replaceAll(regex, repl) 形式产生与以下表达式完全相同的结果:
Pattern.
compile(regex).
matcher(str).
replaceAll(repl)
参数:
regex- 用来匹配此字符串的正则表达式 返回: 得到的 String 抛出:
PatternSyntaxException- 如果正则表达式的语法无效
Class类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该
Class对象。基本的 Java 类型(
boolean、
byte、
char、
short、
int、
long、
float和
double)和关键字
void也表示为
Class对象。
Class没有公共构造方法。
Class对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的
defineClass方法自动构造的
getDeclaredFields
public Field[] getDeclaredFields() throws SecurityException
返回
Field对象的一个数组,这些对象反映此
Class对象所表示的类或接口所声明的所有字段,包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。返回数组中的元素没有排序,也没有任何特定的顺序。如果该类或接口不声明任何字段,或者此
Class对象表示一个基本类型、一个数组类或 void,则此方法返回一个长度为 0 的数组。newInstance()
创建此 Class 对象所表示的类的一个新实例。
相关文章推荐
- java实现jdbc查询结果集result转换成对应list集合
- Java中将ResultSet结果集转换为List
- 将jdbc结果集ResultSet转换成对象列表
- 将jdbc结果集ResultSet转换成对象列表
- 将jdbc结果集ResultSet转换成对象列表
- 将JDBC ResultSet结果集转成List
- 如何将返回的结果集resultSet转换成List
- JAVA将ResultSet的结果集转换为List结构
- 将jdbc结果集ResultSet转换成对象列表
- 将jdbc结果集ResultSet转换成对象列表
- 将jdbc结果集ResultSet转换成对象列表
- 将JDBC ResultSet结果集转成List
- Java - JDBC 结果集 ResultSet 转 List<Map> 类型,继而转 JSON 类型
- 将jdbc结果集ResultSet转换成对象列表
- 将jdbc结果集ResultSet转换成对象列表
- 将JDBC ResultSet结果集转成List
- 将resultSet转换为list(jdbc sql获取rs)
- JDBC中将ResultSet转换为List
- 将jdbc结果集ResultSet转换成对象列表
- 将jdbc结果集ResultSet转换成对象列表