`
123629996
  • 浏览: 294390 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

关于java反射的一点应用

 
阅读更多

这里记录我在项目中写的一个小应用,用在了数据库的帮助类中,用于将查询的结果组装成list返回:不说了,看代码:

public List<Object> getList(String sql,Object[] params,Object obj){
		ResultSet rs = null;
		if(params == null){
		   rs = this.getRs(sql);
		}else{
		   rs = this.getRs(sql, params);
		}
		List<Object> list = new ArrayList<Object>();
		try {
			while(rs.next()){
			int i = 1;
			Object inst =  obj.getClass().newInstance();
			Field[] fields = inst.getClass().getDeclaredFields();
				for(Field field : fields){
					String setStr = field.getName().substring(0, 1).toUpperCase();
					String setMehtodName = "set"+setStr+field.getName().substring(1);
					Method setMethod = obj.getClass().getMethod(setMehtodName, new Class[]{field.getType()});
					setMethod.invoke(inst, new Object[]{rs.getString(i)});
					i++;
				}
				list.add(inst);
			}
		} catch (SecurityException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (InvocationTargetException e) {
			e.printStackTrace();
		} catch (NoSuchMethodException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		}
		return list;
		
	}

 大概解释下:获得ResultSet后,将其封装成LIST集合,hibernate中可以直接获得,当然,我并没有看hibernate中是如何实现的,我这里只是我的一个实现,需要有一些限制条件。

1.获得bean对象就是这里的inst;

2.获得bean对象的所有field域,就是定义的那些字段;

3.构造每个字段的set方法名称;

4.将从Resultset中拿出来的结果set到Bean对象中

5.将bean对象放到List集合中

6.return List集合

限制条件:要保证Bean对象的顺序和写的查询语句查出的每个字段顺序一致,不然,就张冠李戴了!

分享到:
评论

相关推荐

    java 反射机制

    ### Java反射机制深入理解 #### 一、反射机制概述 Java反射机制是一种强大的工具,它允许程序在运行时检查和操作任何类、方法、构造函数和字段等元素。这种能力对于构建灵活的应用程序和框架非常有用,特别是那些...

    Java反射机制总结(实例分析)

    Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并进行操作。通过反射,开发者可以在程序执行时发现并访问类的字段(fields)、方法(methods)以及构造器(constructors),...

    Java反射机制概述.pdf

    Java反射机制的应用十分广泛,尤其在以下几种情况中非常有用: - **框架和库**:许多框架和库都广泛使用反射机制来实现各种高级特性,例如依赖注入和代理模式。 - **运行时类型检查**:开发者可能需要根据运行时...

    java反射例子 希望可以帮助大家

    以下是对标题和描述中提及的Java反射知识点的详细解释: 1. **获取对象的属性**: 在Java中,通过反射可以获取对象的属性。在示例代码中,`getProperty`方法展示了如何做到这一点。首先,通过`owner.getClass()`...

    Java学习,一点就通,你还在等什么

    "Java学习,一点就通,你还在等什么"这个标题暗示了通过深入学习Java,你可以快速掌握其核心概念并应用于实际项目。对于那些对Java感兴趣或者想要提升自己编程技能的人来说,这是一个鼓励和召唤。 描述中提到的“最...

    java中的反射机制

    本文档旨在帮助Java初学者理解和掌握反射机制的基本原理及应用场景。 #### 二、反射机制概述 反射的核心概念是在程序运行过程中,能够获取到已知类的信息并对其进行操作。具体来说,就是能够在运行时获得一个类的...

    JAVA-提高反射效率

    在Java编程中,反射是...以上是关于“JAVA-提高反射效率”这个主题的一些基本知识点,实际的内容可能会涵盖上述某一点或几点的深入讨论。为了深入了解和优化反射的使用,建议阅读相关文章、官方文档以及进行实践操作。

    计算机软件开发中JAVA编程语言的应用分析.pdf

    JAVA语言支持MVC架构,并且在许多JAVA框架中都有应用,例如Spring MVC,它利用JAVA的反射机制和依赖注入等高级特性,帮助开发者实现MVC架构。 综上所述,JAVA编程语言凭借其跨平台特性、面向对象的编程方式、强大的...

    java学习中的一点忠告

    深入理解JVM(Java虚拟机)的内部工作原理,包括类加载器的工作流程、类反射机制以及垃圾回收机制,对于优化Java应用性能至关重要。同时,了解JVM是如何处理字节码验证、管理策略和权限,代码签名和数字签名等安全...

    JAVA技术500篇

    以上是Java技术500篇可能涉及的主要知识点,每一点都值得深入学习和实践,以提升你的Java编程能力。在实际开发中,还需要结合设计模式、最佳实践以及不断涌现的新技术和框架,如Spring Boot、MyBatis、Docker、...

    Java 练习 Java学习资料

    "Java练习"和"Java学习资料"的标题和描述表明这是一个关于Java编程的学习资源,可能是包含代码示例、教程或者练习题目的项目。标签"java课程资源"进一步确认了这一点,暗示我们可能找到的是一个用于教学或自我提升的...

    Java3D 探奇- IBM开发网的Java3D入门教程

    Java3D是Oracle公司开发的一种基于Java平台的三维图形编程库,它允许开发者创建复杂的3D场景,并在Java应用程序或Web应用中展示。这个IBM开发网的Java3D入门教程,结合了中文和英文资源,为初学者提供了一个全面的...

    JAVA解惑.pdf

    《JAVA解惑》这本书主要针对...以上是《JAVA解惑》一书中可能涉及的部分知识点,每一点都值得深入学习和实践。通过掌握这些内容,开发者可以更好地解决Java编程中的各种问题,提升编程技能,写出更高效、更可靠的代码。

    java必须知道的一些问题,入门必备

    这一点是 Java 相对于其他语言的一个显著优势之一。 7. **Applet 和 Servlet**: - Applet 是一种可以在网页中执行的小应用程序,它需要浏览器支持 Java 插件才能运行。Servlet 则是服务器端的技术,用于处理 ...

    java实效编程百例

    7. **反射机制**:Java反射API允许在运行时检查类、接口、字段和方法的信息,甚至动态调用方法。这在元编程和框架设计中非常有用。 8. **设计模式**:书中可能会涵盖常见的设计模式,如工厂模式、单例模式、装饰器...

    第16章 反射1

    【Java反射机制详解】 在Java编程语言中,反射是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段和方法等元数据。在第16章中,我们将深入探讨Java类的加载、连接和初始化过程,以及反射的核心概念。 ...

    java-sample-3_java_

    "java-sample-3_java_"这个标题暗示我们这是一个关于Java编程的示例代码集合,可能包含了多个示例项目或代码片段,用于展示Java语言的不同特性和用法。描述中的"java sample code files"进一步确认了这一点,这可能...

    Java经典入门教程

    对于企业级应用而言,这一点尤为重要,尤其是在Java EE(Java Platform, Enterprise Edition)框架下,部署环境的正确配置直接影响应用的稳定性和性能。 #### 二、Java的历史、现状与特点 **2.1 Java的历史沿革** ...

    关于个人的java笔记整理

    此外,笔记中可能包含了Java的反射机制,它是动态获取类信息并操作对象的关键技术。还有注解(Annotation),用于提供元数据,增强了代码的可读性和可维护性,例如Spring框架中的@Autowired和@Service等注解。 ...

    java程序设计课件

    7. **反射机制**:通过反射,可以在运行时动态获取类的信息并操作对象,这对于插件开发和框架设计非常有用。 接下来,关于**数据库连接**的实现,主要涉及以下内容: 1. **JDBC(Java Database Connectivity)**:...

Global site tag (gtag.js) - Google Analytics