- 浏览: 141285 次
- 性别:
- 来自: 南宁
文章分类
- 全部博客 (137)
- J2SE API基础 (19)
- JAVA Structure/Algorithm (1)
- 设计模式及UML(pd/rose) (11)
- SSH (32)
- JPA/EJB/JSF (0)
- Jsp/Servlet (1)
- XML (0)
- DWR/Dojo/JQuery(Ajax) (1)
- Js/css/HTML (3)
- Java报表开发 (0)
- 网络协议及认证加密算法 (2)
- Java多线程网络编程 (1)
- Lucence (0)
- Oracle Developer (5)
- Oracle DBA (3)
- mysql/SQLServer/DB2 (5)
- Weblogic配置/调试 (0)
- Tomcat/JBoss/Websphere (10)
- Linux/Unix操作部署及shell编程 (9)
- C/C++编程 (4)
- 系统分析 (0)
- 项目管理(CVS&风险控制) (0)
- JUnit单元和J2EE集成测试 (2)
- 软设/招聘 (6)
- IT English (8)
- Mathematics/Data Mining (1)
- Android开发爱好 (1)
- Flash制作爱好 (0)
- Professional wisdom (4)
- 序言 (1)
- 聊天记录 (0)
- 理想 (3)
- 承诺 (0)
- oifuslfjsldkj_chatrecord (1)
最新评论
-
blues1021:
dafeiwudi 写道什么叫外频和陪频啊?一般电脑都显示主频 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系 -
dafeiwudi:
什么叫外频和陪频啊?一般电脑都显示主频,它不表示运算速递,我们 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系
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是一种工具,工具确实能解决一些重复,简单的劳动但我们不能指望工具能一劳永逸的解决所有问题,有
些问题还是需要特殊处理的。
发表评论
-
Unity3DHouse中成功删除信息
2011-08-10 01:12 816//在jsp页面传入的参数在Action类中调用deleteH ... -
hibernate3.0中实现修改数据记录
2011-08-10 01:11 6861.查询页面中传入参数: <a href=& ... -
Unity3DHouse4项目save(object1)到库问题的解决
2011-08-10 01:10 7081.添加时点击没有任何响应和提示,google了一遍有说是 ... -
Unity3DHouse4系统未解问题
2011-08-10 01:08 7981.struts1.2+spring 2.2+Hibern ... -
Struts表单提交的text String数据可以作为HQL中的Integer类型处理
2011-08-10 01:06 8751.传入数据的表单中的声明 :<form metho ... -
6月28日房产的登录模块报错
2011-08-10 01:04 8251.JSP语法报错 exception org.ap ... -
struts的jsp Action中传入EL表达式参数及myeclipse操作技巧(涛)
2011-08-10 01:03 8781.<a href="/searchBuild ... -
Struts标签之Cannot find bean under name org.apache.struts.taglib.html.BEAN错误
2011-08-10 01:02 1292Cannot find bean under name ... -
【转】关于在HQL中的模糊查询问题
2011-08-10 01:02 779来自:20 ... -
Struts中的Action二次请求不认路径../的解决方法
2011-08-10 01:00 846地址栏没有了项目名称:http://localhost:808 ... -
myEclipse项目部署问题之解决方法
2011-08-10 00:58 1010myeclipse下工程: 1.安装myclipse时6.5 ... -
Strut2的属性驱动,模型驱动的理解
2011-08-10 00:58 1078因为在struts1的版本中,属性的拦截以及控制的处 ... -
Hibernate注释中的参照完整性和复合主键类解析
2011-08-10 00:57 1042在引入了或声明了相关表或类后就能够使用它下面的方法,例如: ... -
【转】hibernate的@EmbeddedId嵌入式主键类详解
2011-08-10 00:56 1040复合主键也可以采用 ... -
Spring 2.*有注释的配置文件中各层配置详解
2011-08-10 00:55 853<?xml version="1.0" ... -
Spring 2.5注释程序执行过程和融合xml使用
2011-08-10 00:54 829Spring2.5注释 一、加载Spirng容器,在web. ... -
【转】Struts2注解使用解析
2011-08-10 00:54 809如果希望使用 struts2 ... -
《转》struts.xml 模块化管理
2011-08-10 00:52 818... -
《转改》Struts2和Spring的集成原理
2011-08-10 00:50 6892009年09月02日 星期三 下午 ... -
房产销售系统的服务器配置问题?
2011-08-10 00:48 704Tomcat在外面的安装时抛出404找不到资源,测试后 ...
相关推荐
1. **DAO模式的基本概念** DAO模式是一种数据访问对象模式,它的核心思想是将业务逻辑与数据访问逻辑分离,提供一个独立的对象来处理数据存储。这样,业务层可以与特定的数据库API解耦,使得系统更易于维护和扩展。...
总结来说,Hibernate作为强大的ORM框架,通过DAO模式将数据库操作抽象化,降低了开发复杂度,提高了代码质量。理解并熟练运用Hibernate的这些核心概念和技巧,对于提升Java项目的开发效率和可维护性具有重要意义。
在现代Java应用中,尤其是在Spring框架中,DAO模式通常与ORM(Object-Relational Mapping)框架如Hibernate结合使用。Hibernate是一种强大的Java ORM工具,它允许开发者用面向对象的方式来操作数据库,而无需编写SQL...
在给定的"Mvc+DAO模式例子"压缩包中,可能包含了实现了MVC模式和DAO模式的Java源代码,包括Servlet、JSP、JavaBean以及对应的DAO类。这些文件可以作为学习和理解这两种模式的实例,通过分析和运行代码,可以帮助初学...
4. ORM框架与DAO:探讨Hibernate、MyBatis等ORM(Object-Relational Mapping)框架如何简化DAO的实现,以及它们与传统DAO模式的区别。 5. DAO模式的优势和局限性:讨论DAO模式在实际项目中的应用价值,以及在某些...
一、DAO模式的概念 DAO模式的主要目的是提供一个独立于应用程序的数据访问接口。它创建了一个数据访问的对象,该对象负责处理所有与数据库相关的操作,如查询、更新、删除等。通过这种方式,业务层组件只需与DAO...
1. **DAO模式的核心概念**: - **Data Access Object**:DAO是一个接口或抽象类,定义了对特定数据源进行操作的方法,如获取、添加、修改和删除数据。 - **实体类(Entity Class)**:表示新闻的数据模型,通常...
这个压缩包文件"DAO设计模式辅助资料"显然是为了帮助开发者更好地理解和应用DAO模式。下面,我们将深入探讨DAO设计模式的核心概念、实现方式以及它在实际开发中的应用。 DAO设计模式的基本思想是为数据库操作创建一...
本章节将深入探讨Java DAO模式的基本概念、实现方式以及实际应用。 1. **DAO模式概述** DAO模式的核心思想是将数据访问的逻辑隔离到一个独立的对象中,这个对象称为数据访问对象(DAO)。DAO对象负责处理与数据...
5. ORM框架与DAO模式: ORM(Object-Relational Mapping)框架如Hibernate和MyBatis简化了DAO的实现,它们将Java对象与数据库表映射,使得开发者可以使用面向对象的方式处理数据。这些框架提供了强大的查询能力,...
1. **DAO模式的概念** DAO模式的核心思想是创建一个接口或抽象类,定义数据访问的方法,然后提供一个具体的实现类来完成实际的数据操作。这样可以将数据访问的细节隐藏起来,使得业务逻辑代码不直接与数据库交互,...
在这个经典实例中,我们将深入探讨DAO模式的核心概念、实现方式以及其在实际项目中的应用。 **DAO模式的定义** DAO设计模式的主要目标是创建一个接口,该接口负责处理数据存储和检索的底层细节。通过这种方式,业务...
1. DAO模式的概念和应用 DAO模式是一种数据访问机制,旨在将数据访问操作封装起来,使得业务逻辑层不需要关心数据访问的细节。 2. Hibernate框架的概述 Hibernate是一个流行的对象关系映射(ORM)框架,能够将业务...
DAO模式在实际开发中广泛应用,尤其是在Java和.NET等面向对象编程语言中。 ### DAO设计模式的核心概念 1. **数据访问对象(DAO)**:DAO是接口或类,它定义了对数据源进行操作的一系列方法。这些方法通常包括增、...
2. Java对象序列化:在DAO模式中,经常会遇到需要将数据对象进行存储或传输的情况,这时就需要使用Java的序列化机制。对象序列化允许将实现了Serializable接口的对象转换成一系列字节,然后这些字节可以被存储到文件...
首先,让我们了解一下DAO模式的基本概念。DAO模式的核心思想是创建一个接口,该接口定义了所有与数据库交互的方法。然后,为这个接口创建一个实现类,这个实现类负责实际的数据库操作。这样做的好处是,业务逻辑层只...
DAO模式的概念** DAO模式是一种设计模式,它提供了一种方法来封装对数据库的所有访问,避免了业务逻辑与数据访问代码的耦合。DAO接口定义了对数据的操作,而DAO实现类则负责具体的数据库交互,如SQL查询、事务处理...
在这个主题中,我们将深入探讨DAO设计模式的核心概念、实现方式以及如何在实际项目中使用它来处理数据库的映射。 首先,DAO设计模式的基本思想是创建一个接口或者抽象类,该接口或抽象类定义了一系列与数据库交互的...
1. **DAO模式的概念**:解释DAO作为一个数据访问的中间层,它的主要任务是处理数据存储和检索,隐藏了底层数据库的细节。 2. **DAO模式的优点**:包括解耦业务逻辑和数据访问,提高代码的可测试性,使得数据库的...
例如,使用Spring MVC构建Web应用时,Controller会通过Spring的IOC容器获取Service对象,Service对象再利用DAO进行数据访问,而DAO则可能借助于ORM框架与数据库交互。整个过程中的事务管理可以通过Spring的AOP功能来...