`
blues1021
  • 浏览: 141073 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

DAO模式与ORM概念

    博客分类:
  • SSH
阅读更多

DAO模式:在核心J2EE模式中是这样介绍DAO模式的:为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的语言来说,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。
DAO模式是标准的J2EE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开.一个典型的DAO实现有下列几个组件:
  1. 一个DAO工厂类;   
2. 一个DAO接口;  
 3. 一个实现DAO接口的具体类;   
4. 数据传递对象(有些时候叫做值对象).   
具体的DAO类包含了从特定的数据源访问数据的逻辑。在下面的这段中你将学到设计和实现数据访问对象的技术。   
事务划分:   
关于DAO要记住的一件重要事情是它们是事务性对象。每个被DAO执行的操作(象创建,更新、或删除数据)都是和事务相关联的。同样的,事务划分(transaction demarcation)的概念是特别重要的。   
事务划分是在事务界定定义中的方式。
J2EE规范为事务划分描述了两种模式:编程性事务(programmatic)和声明性事务(declarative).
下表是对这两种模式的拆分:   
声明性事务划分 : 程序员使用EJB的布署描述符声明事务属性
编程性事务划分 : 程序员担负编写事务逻辑代码的责任。  
 运行时环境(EJB容器)使用这些属性来自动的管理事务。 应用程序通过一个API接口来控制事务

ORM概念:
让我们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。几乎所有的程序里面,都存在对象和关系数据库。在业务逻辑层和用户界面层中,我们是面向对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。
当你开发一个应用程序的时候(不使用O/R Mapping),你可能会写不少数据访问层的代码,用来从数据库保存,删除,读取对象信息。
ORM的方法论基于三个核心原则:
 · 简单:以最基本的形式建模数据。
 · 传达性:数据库结构被任何人都能理解的语言文档化。
 · 精确性:基于数据模型创建正确标准化了的结构。
ORM解决的主要问题是对象关系的映射。域模型和关系模型分别是建立在概念模型的基础上的。域模型是面向对象的,而关系模型是面向关系的。
一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录,类的每个属性对应表的每个字段。
ORM 映射规则的定义:
staticvoidMain(string[]args){
MyStudentstu1=newMyStudent();
stu1.Name="刘德华";
stu1.Age=40;//通过反射的方法来动态获取此映射规则
PropertyInfo[]infos=stu1.GetType().GetProperties();
object []objs_fieldAttr=null;
foreach(PropertyInfoinfoininfos) {//GetCustomAttributes:
//返回实体对象中每个属性对应的“特性”信息(数据库字段名、类型)
objs_fieldAttr=info.GetCustomAttributes(typeof(DataFieldAttribute),false);
if(objs_fieldAttr!=null){
Console.Write("实体类的属性名:"+info.Name);
Console.Write("->数据库字段名:");
Console.WriteLine(((DataFieldAttribute)objs_fieldAttr[0]).FieldName);
}
}
}
通过ORM中的(若为hibernate SessionFactory 通过**.hbm.xml产生Session对其操作持久化。
也可通过Spring的org.springframework.orm.hibernate3.support.HibernateDaoSupport;
利用Dao的方式对数据持久化封装操作。
但是ORM和DAO产生的缺点是:
1.从系统结构上来看,采用ORM的系统一般都是多层系统,系统的层次多了,效率就会降低。
2.如果用上了ORM,程序员很有可能将全部的数据提取到内存对象中,然后再进行过滤和加工处理,这样就容易产生性能问题。
3.在对对象做持久化时,ORM一般会持久化所有的属性,有时,这是不希望的。
4.但ORM是一种工具,工具确实能解决一些重复,简单的劳动但我们不能指望工具能一劳永逸的解决所有问题,有

些问题还是需要特殊处理的。

分享到:
评论

相关推荐

    DAO模式实现增加删除修改操作

    1. **DAO模式的基本概念** DAO模式是一种数据访问对象模式,它的核心思想是将业务逻辑与数据访问逻辑分离,提供一个独立的对象来处理数据存储。这样,业务层可以与特定的数据库API解耦,使得系统更易于维护和扩展。...

    Hibernate 基于持久层框架的DAO模式应用

    总结来说,Hibernate作为强大的ORM框架,通过DAO模式将数据库操作抽象化,降低了开发复杂度,提高了代码质量。理解并熟练运用Hibernate的这些核心概念和技巧,对于提升Java项目的开发效率和可维护性具有重要意义。

    DAO模式设计

    在现代Java应用中,尤其是在Spring框架中,DAO模式通常与ORM(Object-Relational Mapping)框架如Hibernate结合使用。Hibernate是一种强大的Java ORM工具,它允许开发者用面向对象的方式来操作数据库,而无需编写SQL...

    Mvc+DAO模式例子

    在给定的"Mvc+DAO模式例子"压缩包中,可能包含了实现了MVC模式和DAO模式的Java源代码,包括Servlet、JSP、JavaBean以及对应的DAO类。这些文件可以作为学习和理解这两种模式的实例,通过分析和运行代码,可以帮助初学...

    dao设计模式视频教程

    4. ORM框架与DAO:探讨Hibernate、MyBatis等ORM(Object-Relational Mapping)框架如何简化DAO的实现,以及它们与传统DAO模式的区别。 5. DAO模式的优势和局限性:讨论DAO模式在实际项目中的应用价值,以及在某些...

    DAO.rar_dao模式怎么写

    一、DAO模式的概念 DAO模式的主要目的是提供一个独立于应用程序的数据访问接口。它创建了一个数据访问的对象,该对象负责处理所有与数据库相关的操作,如查询、更新、删除等。通过这种方式,业务层组件只需与DAO...

    基于DAO模式的新闻发布系统

    1. **DAO模式的核心概念**: - **Data Access Object**:DAO是一个接口或抽象类,定义了对特定数据源进行操作的方法,如获取、添加、修改和删除数据。 - **实体类(Entity Class)**:表示新闻的数据模型,通常...

    DAO设计模式辅助资料

    这个压缩包文件"DAO设计模式辅助资料"显然是为了帮助开发者更好地理解和应用DAO模式。下面,我们将深入探讨DAO设计模式的核心概念、实现方式以及它在实际开发中的应用。 DAO设计模式的基本思想是为数据库操作创建一...

    Chapter08DAO模式_javadao_

    本章节将深入探讨Java DAO模式的基本概念、实现方式以及实际应用。 1. **DAO模式概述** DAO模式的核心思想是将数据访问的逻辑隔离到一个独立的对象中,这个对象称为数据访问对象(DAO)。DAO对象负责处理与数据...

    J2EE之DAO设计模式

    5. ORM框架与DAO模式: ORM(Object-Relational Mapping)框架如Hibernate和MyBatis简化了DAO的实现,它们将Java对象与数据库表映射,使得开发者可以使用面向对象的方式处理数据。这些框架提供了强大的查询能力,...

    java dao模式搭建教程

    1. **DAO模式的概念** DAO模式的核心思想是创建一个接口或抽象类,定义数据访问的方法,然后提供一个具体的实现类来完成实际的数据操作。这样可以将数据访问的细节隐藏起来,使得业务逻辑代码不直接与数据库交互,...

    DAO 设计模式经典实例

    在这个经典实例中,我们将深入探讨DAO模式的核心概念、实现方式以及其在实际项目中的应用。 **DAO模式的定义** DAO设计模式的主要目标是创建一个接口,该接口负责处理数据存储和检索的底层细节。通过这种方式,业务...

    基于DAO模式的Hibernate框架在Java Web开发中的应用.pdf

    1. DAO模式的概念和应用 DAO模式是一种数据访问机制,旨在将数据访问操作封装起来,使得业务逻辑层不需要关心数据访问的细节。 2. Hibernate框架的概述 Hibernate是一个流行的对象关系映射(ORM)框架,能够将业务...

    DAO设计模式

    DAO模式在实际开发中广泛应用,尤其是在Java和.NET等面向对象编程语言中。 ### DAO设计模式的核心概念 1. **数据访问对象(DAO)**:DAO是接口或类,它定义了对数据源进行操作的一系列方法。这些方法通常包括增、...

    Dao设计模式

    2. Java对象序列化:在DAO模式中,经常会遇到需要将数据对象进行存储或传输的情况,这时就需要使用Java的序列化机制。对象序列化允许将实现了Serializable接口的对象转换成一系列字节,然后这些字节可以被存储到文件...

    经典spring关于关于dao模式的开发案例

    首先,让我们了解一下DAO模式的基本概念。DAO模式的核心思想是创建一个接口,该接口定义了所有与数据库交互的方法。然后,为这个接口创建一个实现类,这个实现类负责实际的数据库操作。这样做的好处是,业务逻辑层只...

    DAO详解 详细讲述了DAO的使用

    DAO模式的概念** DAO模式是一种设计模式,它提供了一种方法来封装对数据库的所有访问,避免了业务逻辑与数据访问代码的耦合。DAO接口定义了对数据的操作,而DAO实现类则负责具体的数据库交互,如SQL查询、事务处理...

    DAO的设计模式 里面transfer 数据库的映射

    在这个主题中,我们将深入探讨DAO设计模式的核心概念、实现方式以及如何在实际项目中使用它来处理数据库的映射。 首先,DAO设计模式的基本思想是创建一个接口或者抽象类,该接口或抽象类定义了一系列与数据库交互的...

    DAO.rar_dao

    1. **DAO模式的概念**:解释DAO作为一个数据访问的中间层,它的主要任务是处理数据存储和检索,隐藏了底层数据库的细节。 2. **DAO模式的优点**:包括解耦业务逻辑和数据访问,提高代码的可测试性,使得数据库的...

    Spring框架Jar包里面有ioc、aop、mvc、dao、orm几项

    例如,使用Spring MVC构建Web应用时,Controller会通过Spring的IOC容器获取Service对象,Service对象再利用DAO进行数据访问,而DAO则可能借助于ORM框架与数据库交互。整个过程中的事务管理可以通过Spring的AOP功能来...

Global site tag (gtag.js) - Google Analytics