1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Dao层介绍

DAO 层,文档说明。 一 为什么要选择Hibernate? 直接使用JDBC操作数据库的步骤很繁琐. JDBC是关系型数据库. 我们用Java开发程序,则使用的是面向对象对象的思想. Hibernate正是使用了这两种不同的模型之间建立关联,Hibernate给我们提供了利用面向对象的思想来操作关系型数据的接口。 二Hibernate能做什么? O/R映射。 第一,将对象数据保存到数据库中. 第二,将数据库对象读入对象中. 三Hibernate与O/R之间的关系? 四 Hibernate的核心接口。 Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。    Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。 SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。    Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。    Transaction接口:Transaction接口负责事务相关的操作。它是可选的,可发人员也可以设计编写自己的底层事务处理代码。    Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。 Wmbmm系统,各个部件的时序图 Wmbmm系统,各个部件的协作图: 五 接下来,介绍一下dao层的各个之间部件之间是如何联系的. 以下以User Dao为例, User DaoImpl 实现类,实现一个接口,并且继承Abstract Dao中的已经实现的方法, BaseDao , Abstrator Dao ,User Dao,User DaoImpl具体代码实现: BaseDao: 提供一些常用的CRUD,的方法,以及分页,批量修改,和删除的方法, package pack.java.base.dao; import java.io.Serializable; import java.util.List; import org.hibernate.criterion.Criterion; import pack.java.base.dao.exception.DatabaseException; /** * BaseDao interface * @author ZhouHaiTao * */ public interface BaseDao { /** * add method. * @param obj * @throws DatabaseException */ public abstract void add(Object obj)throws DatabaseException; /** * update method. * @param obj * @throws DatabaseException */ public abstract void update(Object obj)throws DatabaseException; /** * delete method. * @param obj * @throws DatabaseException */ public abstract void delete(Object obj)throws DatabaseException; /** * findAll method. * @param cla

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档