public class ORMTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public static Object getUser(String sql, Class clazz) throws Exception {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
Object obj = null;
try {
conn = JdbcUtils.getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int count = rsmd.getColumnCount();
String[] colNames = new String[count];
for (int i=1; i<=count; i++) {
colNames[i-1] = rsmd.getColumnLabel(i);
}
Method[] ms = obj.getClass().getMethods();
if (rs.next()) {
obj = clazz.newInstance();
for (int i=0; i<colNames.length; i++) {
String colName = colNames[i];
String methodName = "set" + colName;
// Method method = user.getClass().getMethod(methodName, String.class);
// method.invoke(user, rs.getObject(colName));
for (Method m : ms) {
if (m.getName().equals(methodName)) {
m.invoke(obj, rs.getObject(colName));
}
}
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return obj;
}
}
分享到:
相关推荐
4. 结果集映射:将查询结果自动映射到Java对象,避免手动遍历`ResultSet`。 文件`annotation_orm`可能包含了实现这些功能的核心代码,如注解定义、反射处理逻辑以及JDBC操作的封装。通过学习这个案例,开发者可以...
本教程将深入讲解如何使用Java反射来封装JDBC方法,以实现查询、修改、添加和删除数据的操作,并将所有这些功能集成到一个方法中。 首先,我们需要了解JDBC的基本步骤:加载驱动、建立连接、创建Statement或...
5. 处理结果集:`ResultSet`对象包含查询结果,可以遍历获取每一行数据。 6. 关闭资源:使用完后,应关闭`ResultSet`、`Statement`和`Connection`,防止资源泄露。 对于不同类型的数据库,如MySQL、Oracle、SQL ...
"09"可能表示这是系列教程的第九部分,而"jdbc03"对应的就是上面提到的JDBC封装的第三阶段。"进行最后的封装"则可能是封装过程的总结或完成稿。 总的来说,这个主题展示了如何在J2EE环境中通过反射技术优化JDBC操作...
在标题“反射技术将数据库的数据封装进对象中”中,我们关注的是如何利用反射来从数据库获取数据并将其转化为Java对象。这通常涉及到Java的Java Database Connectivity (JDBC) API,它提供了与各种数据库交互的标准...
结果集映射则是将查询结果自动转换为Java对象的过程,这通常涉及到对数据库结果集的遍历以及与Java对象属性的对应。 综上所述,这个压缩包中的内容涵盖了Java数据库编程的多个关键点,包括数据库连接池的使用、设计...
"面向切面封装的JDBC"就是将AOP的概念应用于数据库操作,以减少重复的、繁琐的JDBC模板代码,提高代码的可读性和可维护性。 在传统的JDBC编程中,我们需要手动完成打开数据库连接、创建Statement或...
加载JDBC驱动程序是Java应用程序访问数据库的第一步,这个过程涉及到Java的反射机制和Class.forName()方法。下面我们将深入探讨这一主题。 1. **JDBC驱动类型** JDBC驱动分为四种类型: - Type 1: JDBC-ODBC ...
在向学生讲解Class.forName()方法的使用时,有时需要扩展讲解为什么这样书写的原理,于是,扩展讲解Java反射技术可以查看被监视类的方法(构造方法和普通方法)、公有属性的功能,以达到封闭功能的效果。该例子使用...
根据条件动态构建SQL,执行查询并处理结果集,将结果转化为对象列表。 - **分页**:在查询时,添加LIMIT和OFFSET子句来实现分页,这两个值可以通过反射从方法参数中获取。 模拟Hibernate的JDBC操作虽然可以减少...
将泛型应用于JDBC封装,能够使代码更加灵活、高效且易于维护。下面我们将深入探讨如何利用泛型来封装JDBC,以及其在Oracle数据库操作中的应用。 1. **泛型的理解**: 泛型的主要作用是为容器类(如List、Map等)...
Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查并操作类、接口、对象等的内部信息。这一机制的核心在于Java.lang.reflect包中的三个关键类:Class、Method和Field,它们分别代表类的信息、...
比如,`JsonUtil` 可能封装了将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象的方法。 6. **JDBC**: Java Database Connectivity 是Java访问数据库的标准接口,`JdbcUtil` 类常用于封装数据库连接...
6. **处理结果集**: 使用`ResultSet`对象遍历并处理查询结果。 7. **释放资源**: 在完成操作后,关闭`ResultSet`、`Statement`和`Connection`以释放资源。 #### 四、程序详解 ##### 注册驱动 ```java Class.for...
在实现Reflect-ORM框架的过程中,需要处理的关键问题包括如何动态地构建SQL语句、如何将查询结果映射到对象、以及如何处理事务控制等。例如,在构建SQL语句时,框架需要根据对象属性动态生成INSERT、UPDATE或DELETE...
使用JDBC,开发者需要加载驱动、建立连接、创建Statement或PreparedStatement对象、执行SQL语句、处理结果集并关闭资源。在复习JDBC时,会涉及到连接池的使用,事务管理,以及预编译SQL语句以提高性能。 DAO模式是...
总结来说,这个案例展示了如何结合Java的泛型和反射机制来实现高效、灵活的数据层封装,同时利用MSSQL JDBC 3.0驱动来与SQL Server数据库进行通信。这样的设计有助于简化数据库操作,提高代码的可扩展性和维护性,...
这些方法可能会基于反射或者动态代理技术,自动将对象的属性映射到数据库表的列上。 在"Java Database Utils"这个标签下,我们可以理解到这个封装类主要服务于Java环境下的数据库操作,提供实用工具函数,使得...
- **ResultSet接口**:表示查询结果集,可以遍历结果集获取数据。 ##### 2. 实例演示 在实际应用中,通过JDBC实现网站留言簿功能是一种常见的应用场景。下面是一个简单的示例,展示了如何使用JDBC将留言信息写入...