用反射和特性实现面向对象的数据持久方法 [无常译]
2006-04-05 23:19
555 查看
Download source files - 8.97 Kb
过去我是使用J2EE开发的,并且对OOD很狂热,几个月前开始使用.NET。现在我知道了在.NET下实现数据持久途径,在操作一个表中多个记录的时候,我认为ADO.net中的DataSets、DataReaders、DataAdapters是非常强大的,但我现在在设计中仍然使用Business Objects ,所以我写了一个小型基于.NET的持久层框架。
在过去使用JDO的时候,我会考虑为每个BO创建映射到数据中表的一个XML格式描述,但是我想到一个更好的方法,那就是使用.NET中的Attributes。我以前在网上看到一篇介绍如何使用attributes的文章使我有了这个打算。
User BO:
Same Connection
SqlConnection con = ps.GetConnection();
User u = new User();
u.Name = "Dan Bunea";
u.Password = "myusername";
u.Password = "mypassword";
object id = (long)ps.Create(con,u,typeof(User));
User U2 = (User)ps.GetObject(con,id,typeof(User));
U2.Name = "Dan Bunea Updates";
U2.Password = "newusername";
U2.Password = "newpassword";
P2s.Update(con,U2,typeof(User));
Ps.Delete(con,id,typeof(User));
ps.CloseConnection(con);
说一下性能的问题。用户不需要要关心每个BO有关INSERT, UPDATE, DELETE 和 SELECT(使用主键)的操作,使用对象中指定的特性自动生成这些操作的代码。每个对象的每段代码只需要生成一次,可以使用它们对应的参数来调用。下一次执行相同的操作时,就可以从缓存中获取查询对象,使用反射给每个参数赋值,然后再执行。
特别感谢:.....
原文地址:http://www.codeproject.com/dotnet/persistence_by_reflection.asp
第一次翻译,不好的地方请见谅。
过去我是使用J2EE开发的,并且对OOD很狂热,几个月前开始使用.NET。现在我知道了在.NET下实现数据持久途径,在操作一个表中多个记录的时候,我认为ADO.net中的DataSets、DataReaders、DataAdapters是非常强大的,但我现在在设计中仍然使用Business Objects ,所以我写了一个小型基于.NET的持久层框架。
在过去使用JDO的时候,我会考虑为每个BO创建映射到数据中表的一个XML格式描述,但是我想到一个更好的方法,那就是使用.NET中的Attributes。我以前在网上看到一篇介绍如何使用attributes的文章使我有了这个打算。
User BO:
Same Connection
SqlConnection con = ps.GetConnection();
User u = new User();
u.Name = "Dan Bunea";
u.Password = "myusername";
u.Password = "mypassword";
object id = (long)ps.Create(con,u,typeof(User));
User U2 = (User)ps.GetObject(con,id,typeof(User));
U2.Name = "Dan Bunea Updates";
U2.Password = "newusername";
U2.Password = "newpassword";
P2s.Update(con,U2,typeof(User));
Ps.Delete(con,id,typeof(User));
ps.CloseConnection(con);
说一下性能的问题。用户不需要要关心每个BO有关INSERT, UPDATE, DELETE 和 SELECT(使用主键)的操作,使用对象中指定的特性自动生成这些操作的代码。每个对象的每段代码只需要生成一次,可以使用它们对应的参数来调用。下一次执行相同的操作时,就可以从缓存中获取查询对象,使用反射给每个参数赋值,然后再执行。
特别感谢:.....
原文地址:http://www.codeproject.com/dotnet/persistence_by_reflection.asp
第一次翻译,不好的地方请见谅。
相关文章推荐
- 利用Objective-C的反射机制和运行时特性实现类静态方法的动态访问(二)
- OC-类的声明与实现、方法的声明与实现、面向对象的三大特性之封装
- Linq中使用反射实现--LINQ通用数据表绑定DataGrid控件的方法(原创)
- 设计模式实践-反射到所有接口实现类实践工厂方法,页面中有大量计算数据时设计实践
- 利用反射和自定义特性实现基本数据存取操作自动获取
- 利用Objective-C的反射机制和运行时特性实现类静态方法的动态访问(一)
- c#利用反射+特性实现简单的实体映射数据库操作类实现自动增删改查(三)带源码写好的持久层
- Vue数据双向绑定原理及简单实现方法
- C#实现Winform间的数据交互的三种方法
- 使用ES6的新特性Proxy来实现一个数据绑定实例
- Android编程使用ListView实现数据列表显示的方法
- Hibernate实现批量添加数据的方法
- 【java高级特性之反射】创建Class对象的三种方法
- 多种方式实现JS调用后台方法进行数据交互
- 对数据进行分页显示到table中的实现方法
- 自己动手写个ORM实现(4) 关于反射DataRow数据记录到实体性能的优化
- js简单实现Select互换数据的方法
- Python--反射(重点)、面向对象内置方法:如__str__、面向对象的软件开发
- 使用commons-lang.jar包以及反射机制实现javabean的equals,hashCode和toString三个方法重写
- asp.net实现将Excel中多个sheet数据导入到SQLSERVER中的方法