Java Dao模式

什么是DAO
  DAO是Data Access Object数据访问接口,数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。

DAO的功能:
  1. DAO用来封装Data Source的..就比如,Connection conn = DriverManager.getConnection(...) . . . . . .
就可以把DriverManager. username, passpword这一些放在DAO中
以后要更改  数 据 库  的类型.比如要把SQL Server换成Oracle的话..只需要更改DAO里面的getConnection()里面的连接字符串之类的..

       2. DAO也是把对数据库的操作(比如最基本的更新, 添加等操作)全部封装在里面..
比如说你要你要插入一个新的用户..那么.在DAO中我们只需要提供一个insertUser(User user)这一个方法就可以了..具体的操作是在DaoImpl中实现的...
那么对于要调用DAO的时候.我们只要知道insertUser(User)是用来插入一个新的用户...而不需要知道是如何实现的。

一个典型的 DAO 实现有以下组件:
一个 DAO 工厂类
一个 DAO 接口
一个实现了 DAO 接口的具体类
数据传输对象(实体对象 , 比如 pet, dog, Penguin 等)

在设计 DAO 时,首先要思考以下问题:
程序如何开始?
    程序开始需要干什么?
程序的过程?

程序如何结束?
    程序结束又需要干什么?
Dao是否要负责程序的开始和结束

设计Dao模式
Dao接口: 位于dao包中,  把对数据库操作的所有方法定义在该接口中
Dao实现类:位于 dao.impl 包中 , 针对不同的数据库(比如SQLServer , Oracle 等不同数据库)给出Dao接口中定义的方法的具体实现
实体类: 位于 entity包中,作用是传递数据
通常还会增加一个数据库工具类,用于连接数据库和关闭资源等

时间: 2024-09-19 04:13:47

Java Dao模式的相关文章

Spring 与 Hibernate 的延迟加载和 Dao 模式

Hibernate 与延迟加载: Hibernate 对象关系映射提供延迟的与非延迟的对象初始化.非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来.这有时会导致成百的(如果不是成千的话) select 语句在读取对象的时候执行.这个问题有时出现在使用双向关系的时候,经常会导致整个数据库都在初始化的阶段被读出来了.当然,你可以不厌其烦地检查每一个对象与其他对象的关系,并把那些最昂贵的删除,但是到最后,我们可能会因此失去了本想在 ORM 工具中获得的便利. 一个明显的解决方

使用DAO模式开发宠物管理系统---hellokitty

宠物有狗和企鹅. 狗的属性有:编号.名称.亲密值.健康值.品种.所属主人编号. 企鹅的属性有:编号.名称.亲密值.健康值.性别.所属主人编号. 该系统中主人可以领养宠物,主人的属性有:编号.用户名.密码.姓名.地址.电话. 要求将狗和企鹅的数据保存到同一张表中除所属主人编号.品种.性别外,其余列均不允许为空.主人编号为空表示该宠物未被人领养. 创建宠物表与主人表,狗和企鹅.主人各初始化5条以上的记录用于测试. 编写程序实现以下功能: 1. 主人可以登录到系统中完成下列操作: 2. 主人可以查看当

java Singleton模式

Java Singleton 模式用来保证在运行的应用程序中,一个Class只是实例化一次,也就是只有一个相应的对象存在.在 web 程序中我们会用一个核心的分配功能的Servlet程序,在这里我们就可以运用这种设计模式了.一般Singleton模式通常有几种种形式:第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法.public clas

Hibernate和Spring的延迟加载和DAO模式

Hibernate和延迟加载 Hibernate对象关系映射提供了两种对象初始化模式:延迟加载和非延迟加载.非延迟加载在加载时获取对象本身以及它关联的所有对象.这可能导致在获取一个实例时,执行成百上千的select语句.当使用双向关联时,这个问题被放大,常常出现初始化请求时,整个数据库都被载入.显然检查每个对象的关系,并手工删除他们会费点事,但最终我们可能会因此丢失使用ORM工具的优势.一个明细的解决方式是使用hibernate提供的延迟载入机制.这种初始化策略在类成员被访问时只载入它的一个对象

轻松掌握Java代理模式_java

和大家一起聊一聊java代理模式 1.静态代理 1.1静态代理的代理类和和被代理的类都要维护一个共同的接口.  public interface IUserDao { void save(); } 1.2被代理的类,目标对象  public class UserDao implements IUserDao{ @Override public void save() { System.out.println("-----已经保存数据!!!------"); } } 1.3代理对象  p

java-求:Java工厂模式的应用!!!!

问题描述 求:Java工厂模式的应用!!!! Java中的工厂模式怎么用啊????什么情况下用啊????谁可以举个例子吗? 解决方案 java反射机制工厂模式的应用Java工厂模式应用 解决方案二: 我觉得是这样,由于在面向接口编程的时候,如果你的不同的子类比较多.那么在实现上,你可以考虑使用工厂模式. 跟据你传递进去的不同参数,得到不同的子类实例.这样编写的代码结构清晰. 举例: public class Factory{ public static ISample creator(int w

求解答 模式-DAO模式增删改查问题求解答

问题描述 DAO模式增删改查问题求解答 @Test public void testSave() throws Exception { EmployeeDAO dao = new EmployeeDAO(); Employee e = new Employee(); e.setName("John"); e.setSalary(200); e.setAge(22); //调用方法 是properties类的方法 过时 添加方法 dao.save(e); 解决方案 不知道你在问什么 解决

详解 JAVA 适配模式和 接口适配器

 JAVA适配模式 意图将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.(GoF) 场景 相信很多人都知道什么是显卡,也有很多人知道显卡的本名--图形适配器.恩,是的,正好这回说说Apater模式,就拿显卡来例子来分析一下Adapter模式. 我们知道显示器(Client)是用来显示图形的,它是不能显示数据,它只能够接受来自图形发送设备Target的信号.可是我们手头上只有CPU(Adaptee)这个产生各种描述图形的数据的

详解 JAVA 适配模式 和 接口适配器

JAVA适配模式 意图将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.(GoF) 场景 相信很多人都知道什么是显卡,也有很多人知道显卡的本名--图形适配器.恩,是的,正好这回说说Apater模式,就拿显卡来例子来分析一下Adapter模式. 我们知道显示器(Client)是用来显示图形的,它是不能显示数据,它只能够接受来自图形发送设备Target的信号.可是我们手头上只有CPU(Adaptee)这个产生各种描述图形的数据的数