- 浏览: 990233 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (223)
- JDBC技术 (29)
- Java Base (21)
- SSH框架的集合 (5)
- Javascript部分 (16)
- Sping2.5框架 (6)
- Hibernate框架 (19)
- JDBC中的数据库连接 (5)
- Ajax技术应用 (9)
- Java工具包下载 (3)
- Database (4)
- Java Web (13)
- 我的生活 (4)
- Struts2 (25)
- S2SH (1)
- Prototype (1)
- jfreeChart (5)
- JPA (7)
- JBPM (1)
- JasperReport (6)
- DWR (1)
- freeMark (2)
- IBatis (2)
- FCKeditor (2)
- POI (1)
- JQuery (6)
- JSON (1)
- JavaMail (3)
- Flex (2)
- CSS收藏夹 (1)
- 润乾报表 (2)
- 开源技术 (1)
- Android (2)
- Android_UI (1)
- Android_OS (6)
- Android_OpenLibs (3)
- Volley (1)
- JS_OpenLibs (1)
- Hessian (3)
- OS (1)
最新评论
-
damoluomu:
简单易懂
Java Web开发Session超时设置 -
di1984HIT:
学习了~~~~~~
Java Web开发Session超时设置 -
lord_is_layuping:
...
Java Web开发Session超时设置 -
15111285554:
...
Java Web开发Session超时设置 -
sfg1314:
暂停后重新下载就会报错:ClientAbortExceptio ...
Java Web 文件下载之断点续传
首先Bean在符合JavaBean的要求,即有一个无参的构造方法,所有属性都有一个set和get方法并且set与get方法是set/get+属性名称(属性名称先字母大写)
public class User {
private int id;
private String name;
private Date birthday;
private float money;
public User() {
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public float getMoney() {
return money;
}
public void setMoney(float money) {
this.money = money;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class ORMTest {
public static void main(String[] args) throws SQLException,
IllegalAccessException, InvocationTargetException, Exception {
User user = (User) getObject(
"select id as Id, name as Name, birthday as Birthday, money as Money from user where id=1",
User.class);
//这里取别名就是为了便列名加set或get就可以是JavaBean中属性的set或get方法
System.out.println(user);
Bean b = (Bean) getObject(
"select id as Id, name as Name, birthday as Birthday, money as Money from user where id=1",
Bean.class);
System.out.println(b);
}
private static String[] getColNames(ResultSet rs) throws SQLException {
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);
}
return colNames;
}
static Object getObject(String sql, Class clazz) throws SQLException,
Exception, IllegalAccessException, InvocationTargetException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = JdbcUtils.getConnection();
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
String[] colNames = getColNames(rs);//得到所有的列名
Object object = null;
Method[] ms = clazz.getMethods();//得到javaBean中所有set或get方法
if (rs.next()) {
object = clazz.newInstance();
for (int i = 0; i < colNames.length; i++) {
String colName = colNames[i];
String methodName = "set" + colName;//得到set或get方法名
for (Method m : ms) {
if (methodName.equals(m.getName())) {
m.invoke(object, rs.getObject(colName));//调用set方法,将该列的值放到set方法当中去.
break;
}
}
}
}
return object;
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
}
发表评论
-
高级 DAO 编程 学习编译更好的 DAO 的技巧
2009-04-27 20:09 1638高级 DAO 编程学习编译 ... -
使用Spring的SimpleJdbcTemplate完成DAO操作
2009-04-24 09:35 10115SimpleJdbcTemplate内部包含了一个Name ... -
使用Spring的NamedParameterJdbcTemplate完成DAO操作
2009-04-24 09:18 30789NamedParameterJdbcTemplate内部包含了 ... -
使用Spring的JdbcTemplate和BeanPropertyRowMapper完成的JDBC
2009-04-23 16:55 10710先道要加上两个包:Spring2.5下面的: spring.j ... -
策略设计模式_构建公共通用的Dao
2009-04-23 09:09 1539核心代码: Connection的工具类:详见JDBC数据库 ... -
模板设计模式_构建公共通用的Dao
2009-04-23 09:02 1331核心代码: Connection的工具类:详见:JDBC数据 ... -
使用反射技术调用对象的方法,得到属性,方法等信息
2009-04-20 22:55 2340package com.mengya.test; im ... -
使用反射技术构造对象
2009-04-20 22:54 1609public class Bean { privat ... -
用JDBC访问二进制类型的数据
2009-04-20 13:08 1602JDBC操作二进制类型数据(如图片或压缩包)也是通过IO字节流 ... -
用JDBC访问大段文本数据
2009-04-20 13:07 1394JDBC操作大的文本数据是通过IO字符流操作 publ ... -
我的JDBC实例
2009-04-20 13:06 21031, 首先在配置文件(system.properties)中 ... -
了解事务的隔离级别
2009-04-20 13:05 1202隔离级别多线程并发读取数据时的正确性 用法: connne ... -
可滚动结果集与分页技术
2009-04-20 13:04 1515可滚动的结果集 Statement st = ... -
可更新和对更新敏感的结果集
2009-04-20 13:04 1628可更新的结果集(说明这些都是JDBC特殊的用法,有些数据库可能 ... -
SQL注入,PreparedStatement和Statement
2009-04-20 13:01 2001在SQL中包含特殊字符或SQL的关键字(如:' or 1 or ... -
ResultSetMetaData的使用
2009-04-20 13:00 2695ResultSetMetaData能够通过ResultSet分 ... -
ParameterMetaData的使用
2009-04-20 12:59 2618ParameterMetaData pmd = prepa ... -
JDBC自动获取数据库自动生成的主键
2009-04-20 12:55 3048PreparedStatement.getGeneratedK ... -
JDBC工具类实例
2009-04-20 12:53 1477System.properties配置文件(放在src下面) ... -
JDBC事务保存点,即事部分回滚
2009-04-20 12:52 4889JDBC中的事务保存点,即事务发生回滚的时候,回滚到保存点那里 ...
相关推荐
【反射机制】是Java编程语言中的一个重要特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在本案例中,"简单实现...通过这些文件,我们可以进一步研究和学习如何使用反射机制来实现ORM。
通过阅读和理解这些代码,开发者可以更直观地了解如何在实际项目中应用动态代理和反射实现ORM。 总之,基于Java动态代理和反射机制实现ORM,可以有效地解耦业务逻辑和数据库操作,提高代码的可读性和可维护性。虽然...
这篇博文“利用java反射、注解及泛型模拟ORM实现”旨在探讨如何结合这三种技术来实现对象关系映射(ORM),这是一种将数据库表与Java对象之间进行绑定的技术,简化了数据操作。 首先,我们来理解一下这三个概念: ...
总之,通过Java反射和注解自定义ORM框架,可以实现更加灵活、定制化的数据库操作。这种方式不仅提高了开发效率,还降低了代码的耦合度,使得项目维护更加容易。在实际应用中,可以根据项目的具体需求进行适当的调整...
ORM,全称Object-Relational Mapping,即对象关系映射,是一种编程技术,用于将关系数据库的数据映射到...在实际项目中,虽然简单的反射实现可能效率较低,但对于理解ORM的工作方式和自定义需求,这是一个很好的起点。
### 自己实现ORM框架 #### 一、概述 在软件开发过程中,ORM(Object-Relational Mapping,对象关系映射)是一种重要的技术手段,用于在面向对象编程语言中表示数据库记录,使程序开发者能够像使用对象一样操作...
Java-JDBC【之】实现ORM,结果集映射实体类(ResultSet、注解、反射) 1.ORM实现思路 2.@Table、@Column、标识实体类 2.1.创建注解 @Table、@Column 2.2.标识实体类 2.3.数据库表 3.结果集解析,注解加反射填充实体...
背景: 以前学的Java进行开发,多用到Mybatis,Hiberante等ORM框架,最近需要上手一个C#的项目,由于不是特别难,也不想再去学习C#...首先看一下C#中反射实现方式: 获取Type对象,反射操作都需要通过Type对象来进行。
本项目旨在实现一个基于JDK5.0注解的小型ORM框架,模拟Hibernate的部分功能。 首先,我们要理解ORM的基本原理。ORM的核心思想是将数据库中的表映射为Java对象,将表中的记录映射为对象的实例,这样就可以通过操作...
总结来说,ORM框架是为了解决关系型数据库与面向对象编程之间的不匹配问题,反射和特性是C#中实现ORM的关键工具。反射提供运行时的类型信息和动态操作,特性则作为对象与数据库映射的标记。通过学习和应用这两者,...
## C#中的反射和特性实现ORM映射详解 ### (一)反射 反射是.NET框架提供的一种强大的机制,它允许程序在运行时动态地获取类型信息并操作类型。简单来说,反射就是程序在运行时检查自身的能力,能够获取类型的信息...
【内容概要】:在C#中通过学习使用Attribute,实现一个简单的ORM框架。里面主要有两部分的内容,学习使用Attribute获得设定值;学习通过反射获取属性的值 【适应人群】:初级工程师。但需要对反射、Attribute有一定...
为了实现ORM的功能,需要能够正确地解析上述三种文件。 1. **XML文件解析**: - XML文件解析可以使用两种主流的技术:SAX和DOM。 - SAX(Simple API for XML)是一种基于事件驱动的解析方式,适用于大型文档的...
本文将详细探讨一个名为“K-ORM”的自定义ORM工具,该工具基于JDBC和Java反射机制实现,旨在提供简单易用的数据操作接口。 首先,我们要理解JDBC(Java Database Connectivity)在其中的角色。JDBC是Java平台上的...
采用Java反射技术实现ORM技术,通过操作对象就可以操作数据库。 本例子采用Eclipse , Java 7.0 , apache DBCP, Spring 3.1等开源框架, 数据库JDBC 采用oracle jdbc. 文件分为两部分, 一部分是基于Eclipse 的ORM的...
总之,通过阅读这篇“基于Java简易ORM框架实现(二)”的文章,读者可以了解到ORM框架的基本原理和实现细节,这对于理解和使用现有的ORM框架(如Hibernate、MyBatis)或者自行构建ORM解决方案都有很大的帮助。...
在.NET框架中,C#语言提供了丰富的库来实现ORM,如Entity Framework、NHibernate等。然而,理解ORM的工作原理并亲手实现一个简单的ORM框架,对于提升开发者的数据库操作技能和对数据库设计的理解非常有帮助。 本...
本示例是一个基于C#语言的简单ORM实现,通过反射机制来实现这一功能。下面我们将详细探讨反射、ORM以及它们在这个简单应用中的运用。 **反射**是.NET Framework提供的一种强大特性,允许在运行时检查类型信息,包括...
由于Java反射机制允许程序在运行时构造和访问任何类的属性和方法,它为Reflect-ORM框架提供了实现的理论基础。通过反射,框架可以动态地读取对象的属性信息,将这些信息转换为数据库的表结构,以及将数据库查询结果...