`
商志亮
  • 浏览: 14543 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】通用把数据库查出来的数据实体动态的赋给对象实体并返回他的结果集

 
阅读更多
关键字: 封装数据实体给对象
/*
 * 定义一个泛型的类
 * 这个类的功能主要是
 * 把数据库查出来的实体动态的赋给实体。并返回他的结果集
 * 只要把目标对象,和数据结果集传给getEntity()就可以。
 */
public class GetEntityBean<T> {
	/*
	 * ZIDUAN 主要是用来检索该实体中的Set 方法
	 */
	public final static String ZIDUAN = "set";

	/*
	 * 这个方法就是把结果集赋给实体 然后返回一个List【很牛】
	 */
	public List<T> getEntity(T t, ResultSet re) throws SQLException {
		List<T> list = new ArrayList<T>();
		Method[] me = t.getClass().getMethods();// 得到该实体的中的所有方法
		Class prtype = null;
		/*
		 * 循环结果集把值赋给实体
		 */
		while (re.next()) {
			/*
			 * 遍历这个类中的所有方法同时给set方法赋值
			 */
			
			T t1=null;
			try {
				// 在用这个方法的时候要注意要明白是怎么回事 重点
				t1=(T) t.getClass().newInstance();
			} catch (InstantiationException e1) {
				
				e1.printStackTrace();
			} catch (IllegalAccessException e1) {
				
				e1.printStackTrace();
			}
			for (Method md : me) {
				String methodName = md.getName();
				if (!(methodName.substring(0, 3).equals(ZIDUAN))) {
					continue;
					
				}
				try {
					/*
					 * 这个主要把实体中的字段和数据库中的字段对应住
					 */
					String columnName = methodName.substring(3, 4)
							.toLowerCase()
							+ methodName.substring(4);
					/*
					 * 这个就是赋值的方法
					 */

					try {
						prtype = t.getClass()
								.getMethod("get" + methodName.substring(3),
										new Class[] {}).getReturnType();

					} catch (SecurityException e) {

						e.printStackTrace();
					} catch (NoSuchMethodException e) {

						e.printStackTrace();
					}
					if (prtype.toString().equals("int")) {
						md.invoke(t1, Integer.parseInt(re.getObject(columnName)
								.toString()));
					} else {
						md.invoke(t1, re.getObject(columnName).toString());
					}

				} catch (IllegalArgumentException e) {

					e.printStackTrace();
				} catch (IllegalAccessException e) {

					e.printStackTrace();
				} catch (InvocationTargetException e) {

					e.printStackTrace();
				}
				
			}
			
			list.add(t1);
		}
		return list;
	}

}


分享到:
评论

相关推荐

    java注解实现通用Excel中文表格转实体对象列表,支持中文表头,Excel批量导入,excel转实体对象,excel读取

    java注解实现通用Excel中文表格转实体对象列表,支持中文表头,在Excel数据导入使用的通用工具类,代码简洁优雅 。基于注解实现的支持中文表头的读取Excel数据并转换为实体对象列表的工具类,使用该工具类可将Excel...

    DataReader反射泛型实体对象

    使用反射和泛型,我们可以编写一个通用方法,接收`DataReader`和类型信息作为参数,然后逐行读取数据,利用反射实例化指定类型的对象并设置属性值。 示例代码可能如下: ```csharp public static T ...

    Java反射泛型,实现数据库的动态增删改查等功能

    在动态数据库操作中,泛型可以用来创建通用的DAO(数据访问对象)接口和实现,以处理不同类型的实体对象。例如,我们可以定义一个`GenericDAO&lt;T&gt;`接口,其中`T`代表任何数据模型类。这个接口可以包含`insert(T ...

    利用java反射创建通用的数据库查询方法.docx

    2. **如何解析结果集**:从数据库查询返回的结果集需要映射到相应的实体类实例上。 #### 具体实现细节 ##### 构建SQL语句 在提供的代码片段中,`BaseDao` 类中定义了一个私有方法 `setParament(Object[] param)`...

    利用java反射创建通用的数据库查询方法.pdf

    - 根据查询结果,使用反射动态地创建实体类的对象,并通过`getMethodByColName()`找到的setter方法,将查询结果填充到对象中。 7. **异常处理**: - 在处理反射和数据库操作时,通常会捕获`SQLException`和其他...

    将Map转换成Java实体

    在Java编程中,Map对象和Java实体类是两种常见的数据结构。Map对象通常用于存储键值对,而实体类则代表数据库中的记录或者业务逻辑中的对象。在实际开发中,我们有时需要将Map对象的数据转换为Java实体对象,以便...

    C# DataTable 转换为 实体类对象实例

    } } //对应数据库表: //User //字段:ID、Name 那么你也许需要编写将DataTable 转换为实体对象的方法,便利DataTable.Rows 获得并填充。。 下面是我写的一个通用方法,分享+记录,便于日后直接Copy ~ 代码如下:...

    支持多种数据库的实体生成器源码C#

    因此,实体生成器需要具备良好的数据库适配性,能够处理各种数据库的元数据并生成相应的C#代码。这通常通过抽象出数据库连接、查询和元数据获取的通用接口来实现,然后针对每种数据库提供特定的实现。 代码生成部分...

    数据库通用模块数据库例子

    这个模块通常包括数据访问对象(DAO)、事务管理、查询构建器和实体类等核心组件,能够简化数据库交互的复杂性,提高代码的可维护性和可扩展性。 在“员工管理”这个例子中,数据库通用模块可能包含以下功能: 1. ...

    spring-boot集成neo4j图形数据库,并实现简单的节点创建和查询

    在本文中,我们将深入探讨如何将流行的Java框架Spring Boot与强大的图形数据库Neo4j集成,以及如何在集成后实现节点的创建和查询操作。Spring Boot以其便捷的微服务开发体验和自动化配置闻名,而Neo4j则是一款专为...

    银行金融业务数字化转型数据治理元数据数据库结构建模数据标准合集(12份).zip

    通过实体关系模型(ER模型)、概念数据模型和逻辑数据模型的设计,银行能够确保数据库结构合理、规范,满足业务需求的同时,也能适应未来可能的扩展和变化。良好的数据库建模能降低数据冗余,提高查询性能,为大数据...

    sqlite数据库数据与实体自动绑定

    SQLite-JDBC驱动允许我们通过SQL语句执行数据库操作,并将结果集(ResultSet)自动转换为实体对象。例如,我们可以创建一个查询方法,将查询结果转化为 `List&lt;User&gt;`: ```java public List&lt;User&gt; getUsers() { ...

    通用数据库读写类

    "通用数据库读写类"是一个设计用于简化数据库交互的工具,它利用了C#中的反射机制,为开发者提供了一种灵活且高效的方式来执行数据库的增删改查(CRUD)操作,同时也支持对存储过程的调用。下面将详细介绍这个通用...

    通用权限系统数据库

    通用权限系统数据库是一种精心设计的架构,用于管理用户访问控制和数据安全性,广泛应用于各种规模的企业和组织。这种系统的核心目标是确保只有经过授权的用户能够访问特定的资源,同时提供灵活的角色分配和权限管理...

    基于实体属性/表列名的前后端自定义通用条件查询

    因此,当提到基于实体属性的查询,意味着我们可以直接根据对象的属性来构建SQL查询语句,这为动态生成和执行SQL提供了便利。 接着,前后端通用条件查询是指在前端界面上,用户可以自由选择和配置查询条件,这些条件...

    动态浏览数据库的数据源码

    本示例主要解决GridPanel+TabPanel+ComboBox,动态生成...项目结构上使用三层,为了增加代码的清晰和阅读性,无用的代码都已经清理干净,因为是动态获取并显示任意数据库的任意数据表,所以在这里也 不用实现相关实体.

    c#动态浏览数据库的数据源码

    主要解决GridPanel+TabPanel+ComboBox,动态生成数据,...项目结构上使用三层,为了增加代码的清晰和阅读性,无用的代码都已经清理干净,因为是动态获取并显示任意数据库的任意数据表,所以在这里也不用实现相关实体.

    java执行SQL语句实现查询的通用方法详解

    在executeQuery()方法中,使用ResultSet对象来获取查询结果的元数据和结果集,然后使用反射机制来将查询结果装入实体类对象中。 六、结论 本文主要介绍了Java执行SQL语句实现查询的通用方法详解,包括executeQuery...

    DB2通用数据库DB2通用数据库.ppt

    DB2通用数据库是一款由IBM开发的关系型数据库管理系统,广泛应用于企业级的数据存储和管理。本章节将深入探讨DB2的一些核心概念和特性。 首先,DB2的产品家族划分丰富多样,包括针对不同需求和应用场景的不同版本。...

Global site tag (gtag.js) - Google Analytics