数据库访问层中使用GenericDao和HibernateDaoSupport

简介:

1.参考文献

  1).SSH实例:基于HibernateDaoSupport的泛型Dao

  2).GenericDao设计模式

  3).Generic Data Access Objects

open source project:

  4).genericdao

  5).hibernate-generic-dao

2.问题

  含有多个pojo实体,每一个pojo都要写一个PojoDAO,非常乏味枯燥,思考有没有一种通过的DAO能够省去为每一个pojo写一个DAO。

3.GenericDao分析

  GenericDao的目的是通过他来实现通用的数据库访问层,它通过泛型来实现不同pojo也能够使用一个GenericDao来进行访问,只需要设置泛型的类型即可。首先来看一看GenericDao整体结构。

图1:GenericDao结构图

ps:2011-12-28

  今天给eclipse安装了GreenUML这个eclipse插件,在eclipse中通过如下网址:http://www.cse.buffalo.edu/faculty/alphonce/green更新插件即可。GreenUML能够根据代码生成UML图,所以我将GenericDao结构生成UML如下:

下面来解释上面每一个类或者接口的用户

  1. GenericDao<T>:泛型接口,在这里定义了Dao层的基础的CRUD(Create, read, update and delete)方法,比如sava保存实例,delete删除实例等等。
  2. HibernateDaoSupport:这个是由spring提供的一个抽象类:org.springframework.orm.hibernate3.support.HibernateDaoSupport。类里面定义了 HibernateTemplate的实例,是hibernate的ORM结构中最基础的一个类。
  3. HibernateGenericDao:这个类在我们的例子中没有定义任何方法与变量,他的主要的用处是:(1)重写(Override)HibernateDaoSupport 中定义的方法;(2)增加一些对HibernateDaoSupport类的补充。
  4. GenericDaoImplHibernate<T>:这个类继承HibernateGenericDao并实现接口GenericDao<T>
  5. FileDao:数据访问层接口,根据需求定义方法。
  6. FileDaoImpl:实例化的数据库访问层接口FileDao,并继承通用数据库访问层的类。这样如果FileDao中没有定义方法,那么就表明通用数据库访问层GenericDaoImplHibernate已经能够满足需要。

  上面的结构图看上去有点负责,其实是因为这样的接口充分考虑了系统的可扩充性。如果不考虑可扩充性的话,那么像FileDao、FileDaoImpl和HibernateGenericDao都可以去掉,直接让GenericDaoImplHibernate<T>实现GenericDao<T>接口并继承HibernateDaoSupport类就可以了。在后在使用的时候实例化Dao对象,比如:

GenericDaoImplHibernate<User> userDao=new GenericDaoImplHibernate<User>()

4.GenericDao代码实例

根据GenericDao结构图给出各个接口与类的代码。

4.1.GenericDao.java

View Code

4.2.HibernateDaoSupport.java

这个其实只需要导入spring.jar包即可,不过这里我还是贴出它的源代码,以供参考

View Code

4.3.HibernateGenericDao.java

View Code

4.4.GenericDaoImplHibernate

View Code

4.5.UserDao

View Code

4.6.UserDaoImpl

View Code

 

本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2011/12/25/2300986.html,如需转载请自行联系原作者

目录
相关文章
|
22天前
|
存储 NoSQL Java
Java数据库编程指南:实现高效数据存储与访问
【4月更文挑战第2天】Java开发者必须掌握数据库编程,尤其是JDBC,它是连接数据库的标准接口。使用Spring JDBC或JPA能简化操作。选择合适的JDBC驱动,如MySQL Connector/J,对性能至关重要。最佳实践包括事务管理、防SQL注入、优化索引和数据库设计。NoSQL数据库如MongoDB也日益重要,Java有对应的驱动支持。理解这些概念和技术是构建高效数据库应用的基础。
Java数据库编程指南:实现高效数据存储与访问
|
3月前
|
SQL 关系型数据库 MySQL
Python 数据库访问与ORM框架——打造高效开发利器
Python 作为一门广泛使用的编程语言,其在数据库访问方面也有着较为成熟的解决方案,其中ORM框架更是成为了开发者们的首选。本文将介绍 Python 中数据库访问和 ORM 框架的基本概念,以及如何使用 SQLAlchemy 这一优秀的 ORM 框架进行开发。
|
3月前
|
SQL 数据管理 数据库
Python数据库访问与ORM框架:探索高效数据管理的奥秘
在当今信息爆炸的时代,高效地管理和处理海量数据成为了企业和开发者的迫切需求。本文将介绍Python中的数据库访问技术以及ORM框架(如SQLAlchemy),探索其在数据管理方面的重要作用。通过使用Python数据库访问和ORM框架,开发者可以更轻松地操作数据库、提高代码可读性和维护性,并实现高效的数据持久化和查询。
|
3月前
|
关系型数据库 API 数据库
Python数据库访问与ORM框架:加速开发、提升效率
在现代软件开发中,数据库是不可或缺的组成部分。本文介绍了Python中数据库访问的重要性,并探讨了ORM框架(例如SQLAlchemy)如何帮助程序员加速开发、提升效率。通过使用ORM框架,开发人员可以轻松地将Python对象映射到数据库表,并且可以通过简洁的API进行数据库操作。此外,本文还讨论了ORM框架在处理复杂查询、维护数据一致性和实现数据库迁移方面的优势。
|
3月前
|
SQL Java 关系型数据库
数据库访问:什么是Hibernate框架?
数据库访问:什么是Hibernate框架?
26 0
|
6月前
|
SQL 关系型数据库 MySQL
软件测试|使用PyMySQL访问MySQL数据库的详细指南
软件测试|使用PyMySQL访问MySQL数据库的详细指南
46 0
|
8天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。
|
1月前
|
SQL Java 关系型数据库
Java数据库访问
Java数据库访问
|
7月前
|
Java 关系型数据库 MySQL
连接池技术:简单而强大的加速数据库访问方法
连接池技术是一种简单而强大的方法,可用于加速数据库访问。在传统的数据库访问过程中,每次与数据库建立连接和关闭连接都需要耗费大量的时间和资源。而连接池技术通过事先建立一组可重复使用的数据库连接,有效地减少了连接和关闭连接的开销。本文将深入探讨连接池技术的工作原理和优势,以及如何正确配置和使用连接池来提高应用程序的性能。无论你是开发人员还是系统管理员,通过了解连接池技术,你将能够更好地利用数据库资源,使系统更加稳定和高效。
312 0
|
3月前
|
数据可视化 Serverless 数据库
Serverless应用引擎部署问题之数据库访问失败如何解决
Serverless部署是指将应用程序部署到无服务器架构中,该架构允许开发者专注于代码而无需关心底层服务器的运行和维护;针对Serverless部署过程中可能遇到的挑战,本合集提供全面的指南和最佳实践,帮助开发者顺利实现应用的无服务器化部署。

热门文章

最新文章