文档详情

DAO设计模式与数据库编程.ppt

发布:2018-04-17约1.83千字共10页下载文档
文本预览下载声明
设计模式 欧阳宏基 设计模式的概念 设计模式这一概念源于建筑学领域,目的是为重复出现的问题提供一种最佳解决方案。 在软件开发领域,设计模式表现为一组精心安排的通用的类和对象,再经过定制和实现就可用来解决特定上下文中的问题。 DAO(Data Access Object)模式称为数据访问对象模式,通常应用于数据库操作的业务逻辑代码中。该模式的本质是向外部提供一个访问数据源的统一接口,对外隐藏操作数据源的实现细节。这是因为在实际的应用过程中,应用程序所面对的数据源往往是多种多样的。 不同数据源的连接方式、数据访问方式会有明显的差异。这就导致了需要访问数据源的组件的代码实现方式与数据源的类型有着密切的关系。组件和数据源之间的这种紧耦合关系也就导致了整个应用系统难以在不同数据源之间进行迁移。使用了DAO模式后,即使系统需要进行数据源的迁移,也只需在DAO模式内部进行数据源访问代码的修改,而不会涉及上层调用代码,这样就提高了软件的可维护性。 DAO模式类图 DAO模式的实现 在与数据库操作复杂的业务逻辑中,DAO的实现包括两部分实现: (1) DAO接口的定义 定义与数据库操作相关的抽象方法。 (2) DAO接口的实现 实现接口中所定义的抽象方法。 应用举例 package huangling.dao; import huangling.model.HcgzmPO; import java.util.list; public interface HcgzmDAO{ //取得相关日期的回采工作面数据 List getHcgzmInfoByDate(int ZYear,int ZMonth) throws DataAccessException; //插入一条回采工作面数据 List insertHcgzmInfo(HcgzmPO hcgzmpo) throws DataAccessException; //删除一条回采工作面数据 void deleteHcgzmInfo(HcgzmPO hcgzmpo) throws DataAccessException; //修改一条回采工作面数据 void modifyHcgzmInfo(HcgzmPO hcgzmpo) throws DataAccessException; } package huangling.dao; import java.util.List; import huangling.model.HcgzmPO; import huangling.service.HibernateUtil; ……………………………….. public class HcgzmDAOImp implements HcgzmDAO{ //实现查询方法 public List getHcgzmInfoByDate(int ZYear,int ZMonth) { try{ Session s=HibernateUtil.currentSession(); HibernateUtil.beginTransaction(); String str=from Thcgzm t where t.ZYear=:Year and t.ZMonth=:Month; Query query=s.createQuery(str); query.setInteger(Year,ZYear); query.setInteger(Month,ZMonth); return query.list(); }cacth(HibernateException e){ e.printStackTrace(); return null; } } public void insertHcgzmInfo(HcgzmPO hcgzmpo) {//实现插入方法 try{ Session s=HibernateUtil.currentSession(); HibernateUtil.beginTransaction(); s.save(hcgzmpo); }cacth(HibernateException e){ e.printStackTrace(); } } JDBC编程技巧 将数据库的连接操作写到一个类中,连接数据库的方法定义为静态方法。 * *
显示全部
相似文档