`
luoyenabian
  • 浏览: 4710 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
最近访客 更多访客>>
文章分类
社区版块
存档分类

hibernamte中基础持久化类BaseDao及实现BaseDaoImpl

阅读更多
package com.ssh.neb.dao;


import java.io.Serializable;
import java.util.Collection;
import java.util.List;



public interface BaseDao {
    
	public Object find(String queryString,Object[] values);
	
	public List findList(String queryString, Object[] values);
	
    public List getAllObject(Class clazz);
    
    public Object getObject(Class clazz, Serializable id);
    
    public void saveObject(Object o);
    
    public void removeObject(Class clazz, Serializable id);
    
    public void removeObject(Object o);
    
    public void removeAllObject(Collection collection);
    
    public Object findBy(Class clazz , String name, Object value);
    
    
    public List findLike(Class clazz, String name, String value);
    
    public List findAllBy(Class clazz , String name, Object value);
    
    public void flush();
    
}

 以下是实现类,我感觉还行基本的增删改查都有,拿出来分享下:

package com.ssh.neb.daoImpl;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;


import org.hibernate.Criteria;

import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.ssh.neb.dao.BaseDao;


public class BaseDaoImpl extends HibernateDaoSupport implements BaseDao {

	public List findAllBy(Class clazz, String name, Object value) {
		Criteria cr = getSession().createCriteria(clazz);
		cr.add(Restrictions.in(name, new Object[]{value}));
		List list = cr.list(); 
		return list;
	}

	public Object findBy(Class clazz, String name, Object value) {
		Criteria cr = getSession().createCriteria(clazz);
		cr.add(Restrictions.in(name, new Object[]{value}));
		return cr.list().get(0);
	}

	public List findLike(Class clazz, String name, String value) {
		Criteria cr = getSession().createCriteria(clazz);
		cr.add(Restrictions.like(name, "%"+value+"%"));
		return cr.list();
	}

	public void flush() {
		getHibernateTemplate().flush();
	}

	public List getAllObject(Class clazz) {

		return this.getHibernateTemplate().loadAll(clazz);

		//return getHibernateTemplate().loadAll(clazz);

	}

	public Object getObject(Class clazz, Serializable id) {
		return getHibernateTemplate().load(clazz, id);
	}
	public void removeAllObject(Collection collection) {
		getHibernateTemplate().deleteAll(collection);
	}

	public void removeObject(Class clazz, Serializable id) {
		Object object = this.getHibernateTemplate().load(clazz, id);
		getHibernateTemplate().delete(object);
	}

	public void removeObject(Object o) {
		getHibernateTemplate().delete(o);
	}

	public void saveObject(Object o) {
		getHibernateTemplate().saveOrUpdate(o);
	}

	public Object find(String queryString, Object[] values) {
		Object object = null;
		List list = getHibernateTemplate().find(queryString, values);
		if(list.size()>0)
			object = list.get(0);
			return object;
	}

	public List findList(String queryString, Object[] values) {
		return getHibernateTemplate().find(queryString, values);
	}

	

}

 

分享到:
评论
1 楼 wulinshishen 2010-05-24  
嗯!学习了!

相关推荐

    baseDao及baseDaoImpl将hibernate里面的方法进行合理的封装,使用到java的反射技术

    通过在项目中引入BaseDao接口,开发者可以在具体的DAO实现类中重用这些方法,避免了在每个DAO类中重复编写相同或相似的代码,提高了代码的复用性和可维护性。 例如,BaseDao可能包含以下方法: 1. `void save(T ...

    常用的BaseDAO及其实现

    在BaseDAOImpl类中,countAll方法通过HibernateTemplate执行HQL语句,统计指定类的所有持久化对象。其他方法的实现方式相似,都是通过HibernateTemplate执行HQL语句或sql语句来实现数据访问操作。 BaseDAO提供了...

    baseDAO及其实现案例、jdbcUtil工具类、数据池c3p0、dbcp、druid驱动及实现方式

    在提供的`baseDAO案例及测试.zip`文件中,我们可以看到如何结合`Customer`类来实现具体的数据库操作。 `JDBCUtil`工具类是对JDBC API的进一步封装,它简化了数据库连接的创建、关闭等过程,避免了资源泄露。常见的`...

    basedao_basedao数据库_

    在描述中提到的"手动实现BaseDao"意味着开发者需要自己编写这些基础方法的具体实现,而不是依赖于框架或者工具。这可能涉及到JDBC(Java Database Connectivity)的使用,包括连接数据库、准备SQL语句、执行SQL以及...

    ssh+baseDao实现分页

    2. **实现分页逻辑**:在BaseDao的实现类中,我们需要根据Hibernate的Criteria或者HQL来构造分页查询。使用`setFirstResult()`设置查询起始位置(页码-1乘以每页大小),`setMaxResults()`限制返回结果数量。这样,...

    java公共类basedao

    这个是一个公共的basedao类。需要使用的话直接复制。内容看看就明白了

    基于hibernate的baseDao

    BaseDAO适用于各种需要持久化数据的Java应用,如Web应用、服务端API、后台管理系统等。它可以大大减少开发工作量,提高代码复用率,同时保持代码的整洁和模块化。 总结,基于Hibernate的BaseDAO是一个强大的工具,...

    SpringBoot_BaseDao.zip

    在BaseDao中,反射可能被用来动态实例化DAO类,或者在运行时检查和修改对象的行为。例如,根据传入的实体类型,动态生成SQL语句。 在实际开发中,BaseDao通常会包含一些基本的CRUD(Create, Read, Update, Delete)...

    mybatis basedao

    在Java Web 开发中,MyBatis 是一个非常流行的持久层框架,它允许开发者将SQL语句与Java代码直接结合,避免了传统的ORM(对象关系映射)框架中的复杂性。 MyBatis BaseDAO 的核心理念是将通用的数据库操作抽象出来...

    dbutils封装ORM 实现BaseDAO

    在实际项目中,`BaseDAO` 可以作为基类,各个业务相关的DAO继承自`BaseDAO`,并根据需求重写或扩展特定方法,实现业务逻辑。 在阅读博文《dbutils封装ORM 实现BaseDAO》(链接:...

    hibernate>>BaseDAO

    `BaseDAO`是许多项目中常见的一种设计模式,它代表了数据访问对象(Data Access Object)的基础类,用于封装对数据库的通用操作。现在我们来深入探讨`hibernate`中的`BaseDAO`及其相关知识点。 首先,DAO设计模式是...

    Spring声明式事务及BaseDao完整版

    在IT行业中,Spring框架是Java开发中的核心工具之一,尤其在企业级应用中,它扮演着举足轻重的角色。...在实际项目中,开发者应根据需求选择合适的事务管理策略和BaseDao实现,以达到最佳的代码结构和性能。

    hibernate BASEDAO

    在Java的持久化框架Hibernate中,BaseDAO(Base Data Access Object)是一种常见的设计模式,用于封装数据库操作,提供一套标准的方法来实现CRUD(Create、Read、Update、Delete)操作。这种模式使得业务层可以更加...

    JDBC连接数据库BaseDao通用类(可以调用存储过程)

    从给定的文件信息来看,我们正在探讨一个Java程序中用于连接数据库并调用存储过程的通用类——`BaseDaoOutput`。这个类是IT领域中处理数据库操作时经常使用的一种设计模式,它通过封装数据库连接、执行SQL语句、处理...

    Android 使用ORMLite打造万能泛型Dao简化数据持久化层

    本文将深入探讨如何使用ORMLite在Android中构建一个万能泛型Dao,以实现数据持久化的高效管理。 首先,我们需要理解什么是ORM。ORM是Object-Relational Mapping的缩写,它的主要作用是提供一种机制,将数据库的表格...

    NC65通过BaseDAO操作数据库

    NC65通过BaseDAO操作数据库,包含接口类及接口实现类: /** * 获取baseDAO * @return */ public BaseDAO getBaseDAO() { if(baseDAO == null){ baseDAO = new BaseDAO(); } return baseDAO; } public ...

    基于SpringJDBC的BaseDAO

    ### 基于Spring JDBC的BaseDAO实现与应用 #### 概述 在Java开发领域,尤其是企业级应用开发中,持久层框架是至关重要的组件之一。...对于那些需要快速实现数据持久化的项目来说,这是一个非常实用的选择。

    java泛型BaseDao与BaseService

    在实际开发中,BaseDao和BaseService的泛型设计有助于代码的模块化和解耦,使得各个层次之间的依赖关系更加清晰。它们可以降低代码复杂性,提高代码的可读性和可维护性,同时减少了因类型转换错误可能导致的bug。 ...

    BaseDao的封装

    在IT行业中,数据库操作是应用程序的核心部分,而`BaseDao`的封装则是一种常见的设计模式,用于简化数据库访问层(DAO)的实现。这个模式的主要目的是提高代码的可复用性和可维护性,减少重复的SQL操作代码。下面...

    企业通用BaseDao方法集

    为了实现这些功能,BaseDao一般会依赖于某种持久层框架,如Hibernate、MyBatis或JPA。这些框架提供了与数据库交互的能力,并且简化了事务控制和结果映射等操作。 总结来说,"企业通用BaseDao方法集"是企业级开发中...

Global site tag (gtag.js) - Google Analytics