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);
}
}
分享到:
相关推荐
通过在项目中引入BaseDao接口,开发者可以在具体的DAO实现类中重用这些方法,避免了在每个DAO类中重复编写相同或相似的代码,提高了代码的复用性和可维护性。 例如,BaseDao可能包含以下方法: 1. `void save(T ...
在BaseDAOImpl类中,countAll方法通过HibernateTemplate执行HQL语句,统计指定类的所有持久化对象。其他方法的实现方式相似,都是通过HibernateTemplate执行HQL语句或sql语句来实现数据访问操作。 BaseDAO提供了...
在提供的`baseDAO案例及测试.zip`文件中,我们可以看到如何结合`Customer`类来实现具体的数据库操作。 `JDBCUtil`工具类是对JDBC API的进一步封装,它简化了数据库连接的创建、关闭等过程,避免了资源泄露。常见的`...
在描述中提到的"手动实现BaseDao"意味着开发者需要自己编写这些基础方法的具体实现,而不是依赖于框架或者工具。这可能涉及到JDBC(Java Database Connectivity)的使用,包括连接数据库、准备SQL语句、执行SQL以及...
2. **实现分页逻辑**:在BaseDao的实现类中,我们需要根据Hibernate的Criteria或者HQL来构造分页查询。使用`setFirstResult()`设置查询起始位置(页码-1乘以每页大小),`setMaxResults()`限制返回结果数量。这样,...
这个是一个公共的basedao类。需要使用的话直接复制。内容看看就明白了
BaseDAO适用于各种需要持久化数据的Java应用,如Web应用、服务端API、后台管理系统等。它可以大大减少开发工作量,提高代码复用率,同时保持代码的整洁和模块化。 总结,基于Hibernate的BaseDAO是一个强大的工具,...
在BaseDao中,反射可能被用来动态实例化DAO类,或者在运行时检查和修改对象的行为。例如,根据传入的实体类型,动态生成SQL语句。 在实际开发中,BaseDao通常会包含一些基本的CRUD(Create, Read, Update, Delete)...
在Java Web 开发中,MyBatis 是一个非常流行的持久层框架,它允许开发者将SQL语句与Java代码直接结合,避免了传统的ORM(对象关系映射)框架中的复杂性。 MyBatis BaseDAO 的核心理念是将通用的数据库操作抽象出来...
在实际项目中,`BaseDAO` 可以作为基类,各个业务相关的DAO继承自`BaseDAO`,并根据需求重写或扩展特定方法,实现业务逻辑。 在阅读博文《dbutils封装ORM 实现BaseDAO》(链接:...
`BaseDAO`是许多项目中常见的一种设计模式,它代表了数据访问对象(Data Access Object)的基础类,用于封装对数据库的通用操作。现在我们来深入探讨`hibernate`中的`BaseDAO`及其相关知识点。 首先,DAO设计模式是...
在IT行业中,Spring框架是Java开发中的核心工具之一,尤其在企业级应用中,它扮演着举足轻重的角色。...在实际项目中,开发者应根据需求选择合适的事务管理策略和BaseDao实现,以达到最佳的代码结构和性能。
在Java的持久化框架Hibernate中,BaseDAO(Base Data Access Object)是一种常见的设计模式,用于封装数据库操作,提供一套标准的方法来实现CRUD(Create、Read、Update、Delete)操作。这种模式使得业务层可以更加...
从给定的文件信息来看,我们正在探讨一个Java程序中用于连接数据库并调用存储过程的通用类——`BaseDaoOutput`。这个类是IT领域中处理数据库操作时经常使用的一种设计模式,它通过封装数据库连接、执行SQL语句、处理...
本文将深入探讨如何使用ORMLite在Android中构建一个万能泛型Dao,以实现数据持久化的高效管理。 首先,我们需要理解什么是ORM。ORM是Object-Relational Mapping的缩写,它的主要作用是提供一种机制,将数据库的表格...
NC65通过BaseDAO操作数据库,包含接口类及接口实现类: /** * 获取baseDAO * @return */ public BaseDAO getBaseDAO() { if(baseDAO == null){ baseDAO = new BaseDAO(); } return baseDAO; } public ...
### 基于Spring JDBC的BaseDAO实现与应用 #### 概述 在Java开发领域,尤其是企业级应用开发中,持久层框架是至关重要的组件之一。...对于那些需要快速实现数据持久化的项目来说,这是一个非常实用的选择。
在实际开发中,BaseDao和BaseService的泛型设计有助于代码的模块化和解耦,使得各个层次之间的依赖关系更加清晰。它们可以降低代码复杂性,提高代码的可读性和可维护性,同时减少了因类型转换错误可能导致的bug。 ...
在IT行业中,数据库操作是应用程序的核心部分,而`BaseDao`的封装则是一种常见的设计模式,用于简化数据库访问层(DAO)的实现。这个模式的主要目的是提高代码的可复用性和可维护性,减少重复的SQL操作代码。下面...
为了实现这些功能,BaseDao一般会依赖于某种持久层框架,如Hibernate、MyBatis或JPA。这些框架提供了与数据库交互的能力,并且简化了事务控制和结果映射等操作。 总结来说,"企业通用BaseDao方法集"是企业级开发中...