前段时间写一个RSS聚合系统,需要大量用到从数据库中将表中符合条件的记录取出来生成相应的javabean的集合,于是结合泛型和反射机制写了一个较通用的封装类。源代码如下:
java 代码
-
-
-
-
- import java.util.*;
- import java.sql.*;
- import java.lang.reflect.*;
-
- public class BeanCollectionBuilder{
-
- private BeanCollectionBuilder(){}
-
-
-
-
-
-
-
- public static <T> Collection<T> getBeanCollection(T object,ResultSet rs){
- Collection<T> collection = null;
- Class bean = object.getClass();
- Method[] methods = bean.getMethods();
- List<Method> setMethodList = new ArrayList<Method>();
-
- for (int i = 0;i < methods.length;i++){
- Method method = methods[i];
- if (method.getName().startsWith("set")){
- setMethodList.add(method);
- }
- }
-
- ResultSetMetaData meta = null;
- try{
- meta = rs.getMetaData();
-
- if (setMethodList.size() != meta.getColumnCount()){
- throw new IllegalArgumentException("传入的JavaBean与ResultSet不一致");
- }
-
- Method[] setMethodArray = new Method[setMethodList.size()];
- setMethodList.toArray(setMethodArray);
- int count = setMethodArray.length;
-
- String[] field = new String[count];
- for (int i = 0;i < count;i++){
- field[i] = setMethodArray[i].getName().substring(3).toLowerCase();
- }
-
- collection = new ArrayList<T>();
- while(rs.next()){
- T o = (T)bean.newInstance();
- for (int i = 0;i < count;i++){
- Object[] param = new Object[]{rs.getObject(field[i])};
- setMethodArray[i].invoke(o,param);
- }
- collection.add(o);
- }
- }
- catch(Exception e){
- throw e;
- }
- finally{
- return collection;
- }
- }
-
- }
分享到:
相关推荐
《Java通用范例开发金典源代码》是一个包含大量Java编程示例的资源集合,旨在帮助开发者深入理解和掌握Java编程语言的各种特性和应用场景。这个压缩包文件中的源代码覆盖了Java语言的基础到高级各个方面,是Java学习...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-...
invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名...
JShell是一个交互式的Java shell工具,允许开发者在命令行中即时编写和测试代码片段,这对于快速原型设计和学习非常有用。 通过回顾Java的发展历程以及详细介绍Java 9的新特性,我们可以看出Java语言一直在不断...
- **题目1**:编写一个程序,该程序能够遍历类中的所有成员变量,并将操作信息输出到控制台。 - 示例代码: ```java public class ReflectionDemo { public static void main(String[] args) { try { Class...
- 输入/输出流、多线程、实体类、集合类等基础知识。 - 正则表达式、XML和属性文件等数据处理技术。 - **Java高级特性** - 反射、泛型、注解等高级特性,它们为Java带来了更强大的功能和灵活性。 - 自动装箱和...
而JavaBean是Java编程中的一种特殊类,通常用来封装业务逻辑或数据,符合特定规范,具有getter和setter方法。在Java开发中,有时我们需要将XML数据转换为Java对象,反之亦然,这时XStream库就派上了用场。 XStream...
Java的核心编程部分覆盖了多个方面,包括输入输出(IO)、多线程、实体类、集合类、正则表达式、XML和属性文件等。 - **输入输出(IO)**:Java提供了丰富的IO操作接口,支持文件读写、网络通信等多种场景。 - **多...