`
davepkxxx
  • 浏览: 41015 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring整合Hibernate的DAO模式的通用接口和适配器

阅读更多
通用的DAO接口:
package org.dave.base.dao;

import java.util.List;

public interface BaseDAO {

	public void save(Object entity);

	public void delete(Object entity);

	public Object findById(String id);

	public List findAll();

	public List findByExample(Object exampleEntity);

	public List findByProperty(String field, Object value);

	public List findByProperty(String field, Object minValue, Object maxValue);

	public List findByLinkProperty(String field, Object value);

	public Object merge(Object entity);

	public void attachDirty(Object entity);

	public void attachClean(Object entity);

}


公共的DAO适配器:
package org.dave.base.dao.adapter;

import java.util.List;

import org.dave.base.dao.BaseDAO;
import org.hibernate.LockMode;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public abstract class BaseDAOAdapter extends HibernateDaoSupport implements BaseDAO {

	protected BaseDAOAdapter() {

	}

	public void save(Object entity) {
		getHibernateTemplate().saveOrUpdate(entity);
	}

	public void delete(Object entity) {
		getHibernateTemplate().delete(entity);
	}

	public List findAll(String entityName) {
		String queryString = "from " + entityName;
		return getHibernateTemplate().find(queryString);
	}

	public Object findById(String entityName, String id) {
		return getHibernateTemplate().get(entityName, id);
	}

	public List findByProperty(String entityName, String field, Object value) {
		String queryString = "from " + entityName + " as model where model." + field + "= ?";
		return getHibernateTemplate().find(queryString, value);
	}

	public List findByProperty(String entityName, String field, Object minValue, Object maxValue) {
		String queryString = "from " + entityName + " as model where model." + field + ">? and model." + field + "<?";
		String[] values = { minValue, maxValue };
		return getHibernateTemplate().find(queryString, values);
	}

	public List findByProperty(String entityName, String field, String value) {
		String queryString = "from " + entityName + " as model where model." + field + "link '%" + value + "%'";
		return getHibernateTemplate().find(queryString);
	}

	public List findByExample(Object exampleEntity) {
		return getHibernateTemplate().findByExample(exampleEntity);
	}

	public Object merge(Object entity) {
		return getHibernateTemplate().merge(entity);
	}

	public void attachDirty(Object entity) {
		getHibernateTemplate().saveOrUpdate(entity);
	}

	public void attachClean(Object entity) {
		getHibernateTemplate().lock(entity, LockMode.NONE);
	}

}


例子:
2.DAO接口:
package org.dave.user.dao;

import java.util.List;

import org.dave.base.dao.BaseDAO;

public interface UserDAO extends BaseDAO {
	
	public List findByUsername(String username);
	
	public List findByUserpass(String userpass);
	
}


3.DAO类:
package org.dave.user.dao.impl;

import java.util.List;

import org.dave.base.dao.adapter.BaseDAOAdapter;
import org.dave.user.dao.UserDAO;

public class UserDAOImpl extends BaseDAOAdapter implements UserDAO {

	public static final String USER = "org.dave.user.model.User";
	public static final String USERNAME = "username";
	public static final String USERPASS = "userpass";

	public List findAll() {
		return super.findAll(USER);
	}

	public Object findById(String id) {
		return super.findById(USER, id);
	}

	public List findByProperty(String field, Object value) {
		return super.findByProperty(USER, field, value);
	}

	public List findByProperty(String field, Object minValue, Object maxValue) {
		return super.findByProperty(USER, field, minValue, maxValue);
	}

	public List findByLinkProperty(String field, String value) {
		return super.findByProperty(USER, field, value);
	}

	public List findByUsername(String username) {
		return this.findByProperty(USERNAME, username);
	}

	public List findByUserpass(String userpass) {
		return this.findByProperty(USERPASS, userpass);
	}

}
分享到:
评论

相关推荐

    非注解Springmvc+spring+hibernate 入门实例

    为了整合SpringMVC、Spring和Hibernate,你需要在Spring的配置文件中引入Hibernate的相关配置,如数据源、SessionFactory以及事务管理器。同时,你还需要配置一个Hibernate的本地SessionFactory Bean,以便Spring...

    Spring集成Hibernate myeclipse 下

    在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在应用层和数据持久化层发挥着关键作用。Spring是一个全面的Java企业级应用开发框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)...

    Struts_Hibernate_Spring整合JAR包

    当Struts、Hibernate和Spring整合时,通常Spring作为核心框架负责整个应用的管理,包括初始化Struts和Hibernate。Spring可以注入Action类中的依赖,比如DAO(Data Access Object)或Service层对象,这样就可以实现...

    Struts2,spring,Hibernate整合用到的jar架包

    - struts2-core.jar:包含Struts2框架的核心类和接口。 - struts2-spring-plugin.jar:用于整合Spring,提供Action与Spring Bean的绑定。 - struts2-convention-plugin.jar:提供了基于约定优于配置的插件,简化...

    SpringMVC与Hibernate整合所需jar

    这些组件通过一系列配置和接口协同工作,处理HTTP请求并返回响应。 对于SpringMVC,我们需要以下关键jar文件: 1. spring-webmvc.jar:包含Spring MVC的核心实现。 2. spring-context.jar:提供上下文支持,如bean...

    SpringMVC+spring+hibernate整合ssh

    SSH整合是Java Web开发中的一种常见模式,全称为Spring、SpringMVC和Hibernate的集成。这三个框架分别在应用层、表现层和持久层扮演着重要角色。Spring作为核心框架,负责依赖注入(DI)和面向切面编程(AOP),...

    springMVC+hibernate搭建的一个demo帮助新人

    SpringMVC和Hibernate是Java开发中非常流行的两个框架,它们分别负责Web应用的模型-视图-控制器(MVC)架构和对象关系映射(ORM)。这个“springMVC+hibernate搭建的一个demo”旨在为初学者提供一个快速入门的实例,...

    SpringMVC+Spring+Hibernate(SSH)框架搭建之一

    在IT行业中,SSH框架是Java Web开发中常用的三大框架组合,包括SpringMVC、Spring和Hibernate。本教程将详细介绍如何一步步搭建一个基于SSH的Web应用环境,并提供了解决常见问题的说明文档。 首先,让我们从...

    springmvc+spring+hibernate

    Spring MVC、Spring 和 Hibernate 是Java开发中非常重要的三个框架,它们分别在Web应用程序的MVC模式、依赖注入和持久化层扮演着核心角色。这里,我们详细探讨一下这三个框架以及如何将它们集成到一个项目中。 ...

    spring集成hibernate,最简单移动的小案例

    5. **创建DAO接口和实现**:定义数据访问对象(DAO)接口,然后使用Spring的`@Repository`注解创建其实现类。在实现类中,注入SessionFactory并使用它来创建Session对象,执行CRUD操作。 6. **事务管理**:Spring...

    Spring+SpringMvc+Maven+Hibernate整合

    在"Spring+SpringMvc+Maven+Hibernate整合"中,Maven通过其配置文件pom.xml来管理所有依赖库,包括Spring、SpringMVC和Hibernate,确保版本兼容,避免“类路径地狱”。 Hibernate是一个强大的对象关系映射(ORM)...

    hibernate和spring MVC配置整合

    下面我们将详细介绍如何进行hibernate和Spring MVC的配置整合。 ### 1. 引入依赖 首先,你需要在项目中添加Spring MVC和Hibernate的相关依赖。通常在Maven或Gradle的pom.xml或build.gradle文件中,你需要引入以下...

    Spring+SpringMVC+hibernate完美整合包

    在SSH整合中,Spring主要负责控制层和业务层的管理,通过Bean工厂或ApplicationContext来实例化和管理所有对象,包括数据库操作的DAO(Data Access Object)和业务服务接口。 SpringMVC是Spring框架的一部分,专门...

    Spring-SpringMVC-Mybatis整合所有jar包

    这个压缩包“ssm-lib”包含了所有整合所需的库文件,包括Spring的相关jar包(如spring-context、spring-webmvc等)、Mybatis的jar包以及其对Spring的适配器(mybatis-spring)、还有可能包括数据库驱动和其他辅助库...

    springMVC+hibernate项目整合

    在IT行业中,SpringMVC和Hibernate是两个非常重要的框架,它们分别是Java Web开发中的Model-View-Controller(MVC)架构模式的实现和对象关系映射(ORM)工具。本项目整合了这两个框架,旨在创建一个高效、灵活的...

    spring mvc+hibernate 简单 实例 代码,新手入门

    3. **整合 Spring MVC 和 Hibernate:** - 通过 Spring 的声明式事务管理,可以在配置文件中定义事务边界,简化事务处理。 - 使用 Spring 的 DataSource 和 SessionFactory 配置,以便在 Spring 环境下管理 ...

    DAO模式实现增加删除修改操作

    DAO模式往往与其他设计模式结合使用,如工厂模式用于创建DAO实例,策略模式用于切换不同的数据访问策略,适配器模式用于兼容不同的数据库API。 9. **实战案例** 假设我们有一个用户管理系统,`User`实体包含`id`,...

    SpringMVC+Hibernate+Spring完美整合代码

    这个"SpringMVC+Hibernate+Spring完美整合代码"压缩包很可能是包含了一个已经配置好并能直接运行的示例项目,包括数据库配置、实体类、DAO层、Service层、Controller层以及相关的配置文件。下载后,开发者可以参考其...

    spring+springMVC+hibernate整合jar包

    6. 数据访问层:使用Hibernate的DAO(数据访问对象)和Service(业务逻辑)层接口,通过Spring的AOP和事务管理来处理数据库操作。 7. 控制器层:创建SpringMVC的Controller类,处理HTTP请求,调用Service层方法,将...

    struts和hibernate整合的包

    这两个框架的整合需要适配器,例如`struts2-hibernate-plugin`,它允许我们在Struts 2的Action类中直接使用Hibernate的功能。 2. **配置文件**:整合过程涉及到的配置文件主要有`struts.xml`、`hibernate.cfg.xml`...

Global site tag (gtag.js) - Google Analytics