通用的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,你需要在Spring的配置文件中引入Hibernate的相关配置,如数据源、SessionFactory以及事务管理器。同时,你还需要配置一个Hibernate的本地SessionFactory Bean,以便Spring...
在IT行业中,Spring和Hibernate是两个非常重要的框架,它们分别在应用层和数据持久化层发挥着关键作用。Spring是一个全面的Java企业级应用开发框架,提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)...
当Struts、Hibernate和Spring整合时,通常Spring作为核心框架负责整个应用的管理,包括初始化Struts和Hibernate。Spring可以注入Action类中的依赖,比如DAO(Data Access Object)或Service层对象,这样就可以实现...
- struts2-core.jar:包含Struts2框架的核心类和接口。 - struts2-spring-plugin.jar:用于整合Spring,提供Action与Spring Bean的绑定。 - struts2-convention-plugin.jar:提供了基于约定优于配置的插件,简化...
这些组件通过一系列配置和接口协同工作,处理HTTP请求并返回响应。 对于SpringMVC,我们需要以下关键jar文件: 1. spring-webmvc.jar:包含Spring MVC的核心实现。 2. spring-context.jar:提供上下文支持,如bean...
SSH整合是Java Web开发中的一种常见模式,全称为Spring、SpringMVC和Hibernate的集成。这三个框架分别在应用层、表现层和持久层扮演着重要角色。Spring作为核心框架,负责依赖注入(DI)和面向切面编程(AOP),...
SpringMVC和Hibernate是Java开发中非常流行的两个框架,它们分别负责Web应用的模型-视图-控制器(MVC)架构和对象关系映射(ORM)。这个“springMVC+hibernate搭建的一个demo”旨在为初学者提供一个快速入门的实例,...
在IT行业中,SSH框架是Java Web开发中常用的三大框架组合,包括SpringMVC、Spring和Hibernate。本教程将详细介绍如何一步步搭建一个基于SSH的Web应用环境,并提供了解决常见问题的说明文档。 首先,让我们从...
Spring MVC、Spring 和 Hibernate 是Java开发中非常重要的三个框架,它们分别在Web应用程序的MVC模式、依赖注入和持久化层扮演着核心角色。这里,我们详细探讨一下这三个框架以及如何将它们集成到一个项目中。 ...
5. **创建DAO接口和实现**:定义数据访问对象(DAO)接口,然后使用Spring的`@Repository`注解创建其实现类。在实现类中,注入SessionFactory并使用它来创建Session对象,执行CRUD操作。 6. **事务管理**:Spring...
在"Spring+SpringMvc+Maven+Hibernate整合"中,Maven通过其配置文件pom.xml来管理所有依赖库,包括Spring、SpringMVC和Hibernate,确保版本兼容,避免“类路径地狱”。 Hibernate是一个强大的对象关系映射(ORM)...
下面我们将详细介绍如何进行hibernate和Spring MVC的配置整合。 ### 1. 引入依赖 首先,你需要在项目中添加Spring MVC和Hibernate的相关依赖。通常在Maven或Gradle的pom.xml或build.gradle文件中,你需要引入以下...
在SSH整合中,Spring主要负责控制层和业务层的管理,通过Bean工厂或ApplicationContext来实例化和管理所有对象,包括数据库操作的DAO(Data Access Object)和业务服务接口。 SpringMVC是Spring框架的一部分,专门...
这个压缩包“ssm-lib”包含了所有整合所需的库文件,包括Spring的相关jar包(如spring-context、spring-webmvc等)、Mybatis的jar包以及其对Spring的适配器(mybatis-spring)、还有可能包括数据库驱动和其他辅助库...
在IT行业中,SpringMVC和Hibernate是两个非常重要的框架,它们分别是Java Web开发中的Model-View-Controller(MVC)架构模式的实现和对象关系映射(ORM)工具。本项目整合了这两个框架,旨在创建一个高效、灵活的...
3. **整合 Spring MVC 和 Hibernate:** - 通过 Spring 的声明式事务管理,可以在配置文件中定义事务边界,简化事务处理。 - 使用 Spring 的 DataSource 和 SessionFactory 配置,以便在 Spring 环境下管理 ...
DAO模式往往与其他设计模式结合使用,如工厂模式用于创建DAO实例,策略模式用于切换不同的数据访问策略,适配器模式用于兼容不同的数据库API。 9. **实战案例** 假设我们有一个用户管理系统,`User`实体包含`id`,...
这个"SpringMVC+Hibernate+Spring完美整合代码"压缩包很可能是包含了一个已经配置好并能直接运行的示例项目,包括数据库配置、实体类、DAO层、Service层、Controller层以及相关的配置文件。下载后,开发者可以参考其...
6. 数据访问层:使用Hibernate的DAO(数据访问对象)和Service(业务逻辑)层接口,通过Spring的AOP和事务管理来处理数据库操作。 7. 控制器层:创建SpringMVC的Controller类,处理HTTP请求,调用Service层方法,将...
这两个框架的整合需要适配器,例如`struts2-hibernate-plugin`,它允许我们在Struts 2的Action类中直接使用Hibernate的功能。 2. **配置文件**:整合过程涉及到的配置文件主要有`struts.xml`、`hibernate.cfg.xml`...