使用了对象映射转换层确实可以大幅简化开发工作,但最近研究了各家数据层的有缺点后,我发现自己开发数据层可能更划算些:
1. 向Hibernate等著名ORM产品号称缓存的命中率达90%以上,但如果应用时分布到多台服务器上,甚至是客户端时,其缓存命中率会差得一塌糊涂, 于是乎大家都在说建立在其上建立应用缓存,但应用缓存会带来脏读、冲突等诸多问题。而自己编制数据层就可有选择的处理缓存问题,显著提高效率。
2. 面向对象编程一个很突出的特点就是其支持继承,而继承的实现在数据库设计中有两种方式:
1) 父子类使用同一张表,特点是效率较高,但多个对象数的据在一起会浪费部分空间
2) 父子类使用不同的表,并用相同的键值对(ID)关联,其转换的效率会低,且如果某一对象的各个子类都没有附加数据,反而会增加键值对的空间。
如果出现更加复杂的父子类之间的关联关系,处理不好可能造成循环引用,因此通用的ORM产品都干脆做了很多限制,也就是说其无法完全实现所设计的对象结构体系,而自己设计ORM就可以解决这类问题。
3. 更灵活的数据库操作,虽然某些轻型ORM支持对数据库的直接操作,但如果自定义的数据层设得当,实现起来会更加方便。
4. 更灵活的数据关联处理,在数据库中表间的关联有级联删除/置空等操作,而实际上对象间的删除及更新处理也相对复杂,有时需要级联删,有时需要置空,而有时又禁止删除,因此使用复杂的配置文件处理来处理去,可能还不如直接写在代码里更直观些。
其实,自己开发数据层耗时也不大,用Hibernate一周完成的事情,自己做可能2周也就出来了,而且后期对象的增减、功能增减可以做的更灵活。
分享到:
相关推荐
ORM(Object-Relational Mapping,对象关系映射)三层架构是一种常见的软件设计模式,尤其在开发基于数据库的应用程序时,这种架构模式被广泛采用。它将业务逻辑、数据访问和用户界面有效地分离,使得各层职责清晰,...
总结起来,ORM数据持久层生成工具在C#开发中起着至关重要的作用,它简化了数据库操作,提高了开发效率,同时也降低了维护成本。通过理解并熟练掌握这类工具的使用,开发者可以更专注于业务逻辑的实现,而不是繁琐的...
2. 实现数据访问层:使用ORM框架如Hibernate创建数据库连接,定义DAO(Data Access Object)类,封装数据库操作。 3. 构建业务逻辑层:编写服务类,实现业务逻辑,调用数据访问层的方法完成数据操作。 4. 创建表现层...
在你开发的小型ORM项目中,包含了一个代码生成工具,这通常是为了简化开发过程,自动生成与数据库表结构对应的实体类、数据访问接口以及实现。通过这种方式,开发者只需要关注业务逻辑,而无需手动编写繁琐的数据库...
传统的数据持久层开发方法,比如使用JDBC(Java Database Connectivity),虽然提供了直接操作数据库的手段,但需要开发者编写大量的SQL语句以及结果集处理代码。这种方式不仅编写效率低下,而且很难维护,难以适应...
通过上述介绍,我们可以看到.NET环境下的ORM框架结合三层架构不仅能够有效地管理应用程序的不同部分,还能大大提高开发效率和代码质量。此外,通过合理的分层设计,还可以使应用程序更加健壮、易于维护。希望本文能...
在使用 ORM 时,我们可以避免编写大量的数据访问层代码,使用 ORM 自动生成 DAL 代码,可以提高开发效率和降低开发成本。同时,ORM 还提供了灵活性,使用 ORM 创建的模型比使用其它方法创建的模型更有能力适应系统的...
多层架构是一种常见的软件设计模式,将应用程序分为多个独立的层,如表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。这种架构有利于模块化,提高代码的可读性和可维护性。在本示例中,"DAL"可能包含了与...
这个过程可能涉及到大量代码编写,但能够帮助你更深入地理解数据访问层的内部工作,从而在实际项目中更好地应用和优化ORM技术。同时,通过分享和评估自定义ORM,可以从社区获取反馈,进一步提升自己的编程能力。
在IT领域,ORM(Object-Relational Mapping,对象关系映射)是一种技术,它允许开发者在使用面向对象编程语言时,无需关注底层数据库的具体细节,就能处理关系型数据库中的数据。ORM框架通过创建对象和数据库表之间...
1. **DataRow的不便使用**:在传统的.NET开发中,我们经常需要通过DataTable的索引方式(如`DataTable[0].Rows[0][“Name”]`)来访问数据,这种方式既不直观也不方便。ORM如IBatisNet提供了将DataRow转化为序列化...
通过深入学习ORM,开发者可以更好地利用面向对象的思维方式处理数据库操作,降低数据层与业务层之间的耦合度,提高代码的可读性和可维护性。不论是Hibernate还是MyBatis,都有其独特的优势和适用场景,选择合适的ORM...
ORM(Object-Relational Mapping,对象关系映射)是软件开发中的一个重要概念,它提供了一种在关系数据库和面向对象编程语言之间建立映射的方法,使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层的SQL...
Dos.ORM.Demo可能展示了如何在业务逻辑层中使用ORM进行数据操作,如事务处理、数据验证等。 5. **数据库设计**:虽然具体数据库结构没有提供,但案例可能包含了数据库表的设计示例,如字段类型、主键设置、外键...
在本例中,我们讨论的是一个基于VS2005开发的三层架构ORM客户关系管理系统,它提供了学习源码,非常适合于开发者进行学习和实践。 首先,三层架构是软件设计中的一种常见模式,主要分为表现层(UI)、业务逻辑层...
通过阅读和理解Spring-ORM的源码,我们可以深入理解Spring如何与ORM(对象关系映射)框架进行交互,以及Spring如何简化数据访问层的开发。 1. **IoC容器与数据源** Spring的核心是IoC(Inversion of Control)容器...
Python的ORM(Object-Relational Mapping)框架是用于将数据库操作转化为面向对象的方式,使得开发者可以使用Python类和对象来处理数据库数据,而无需直接编写SQL语句。`reobject`是一个这样的ORM层,它专注于提供...
9. **自定义扩展**:如果项目有特殊需求,学习如何扩展Moon.Orm,如创建自定义的数据访问层、自定义日志记录等。 总之,Moon.Orm是一个强大的ORM框架,通过它可以极大地提升.NET开发者的数据库操作效率,减少与...
在Android开发中,ORM框架可以帮助我们简化数据访问层的代码,提高开发效率。常见的Android ORM框架有SQLiteOpenHelper、GreenDao、ORMLite等。 本示例中提到的ORM可能是指使用了某个特定的ORM库,但没有具体指出是...
ORM简化了数据访问层的开发,提高了代码的可读性和可维护性,同时减少了与数据库的直接交互,降低了耦合度。 接下来,MVC模式是一种设计模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器...