--------------------------------------------------------BaseDAO----------------------------------------------
package org.taink.common;
import java.io.Serializable;
import java.util.List;
public interface BaseDAO<K extends Serializable, V> {
/**
* 查询所有内容
* @return 返回实体集合
*/
List<V> findAll();
/**
* 按HQL和条件查询数据
* @param hql 执行HQL的语句
* @param params 传入参数
* @return 返回实体集合
*/
List<V> findList(String hql, Object... params);
/**
* 按实体ID查找
* @param id 实体类的主键
* @return 返回实体类
*/
V findById(K id);
/**
* 向数据库增加一个实体类
* @param entity 实体类
*/
void addEntity(V entity);
/**
* 向数据库增加以List封装的实体类
* @param entities
*/
void addEntityes(List<V> entities);
/**
* 删除单个实体对象
* @param entity
*/
void delete(V entity);
/**
* 同时删除多个实体对象
* @param entities
*/
void delete(List<V> entities);
/**
* 修改单个实体对象
* @param entity
*/
void update(V entity);
/**
* 同时修改多个实体对象
* @param entities
*/
void update(List<V> entities);
}
--------------------------------------------BaseDAOImpl----------------------------------------------------------
package com.toggery.dao.impl;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.toggery.dao.BaseDAO;
public class BaseDAOSupport<K extends Serializable, V> extends HibernateDaoSupport implements BaseDAO<K ,V> {
@Override
public void addEntity(V entity) {
getHibernateTemplate().save(entity);
}
@Override
public void addEntityes(List<V> entities) {
for (V entity : entities) {
getHibernateTemplate().save(entity);
}
}
@Override
public void delete(V entity) {
getHibernateTemplate().delete(entity);
}
@Override
public void delete(List<V> entities) {
for (V entity : entities) {
getHibernateTemplate().delete(entity);
}
}
@SuppressWarnings("unchecked")
@Override
public List<V> findAll() {
return getHibernateTemplate().loadAll(getEntityType());
}
@SuppressWarnings("unchecked")
@Override
public V findById(K id) {
return (V) getHibernateTemplate().get(getEntityType(), id);
}
@SuppressWarnings("unchecked")
private Class<V> getEntityType(){
return (Class<V>) ((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[1];
}
@SuppressWarnings("unchecked")
@Override
public List<V> findList(String hql, Object... params) {
//return (List<V>) getHibernateTemplate().get(hql, params);
return getHibernateTemplate().find(hql,params);
}
@Override
public void update(V entity) {
getHibernateTemplate().update(entity);
}
@Override
public void update(List<V> entities) {
for (V entity : entities) {
getHibernateTemplate().update(entity);
}
}
}
分享到:
相关推荐
标题“spring-master-slave-commondao”暗示我们正在讨论一个与Spring框架相关的项目,可能是用于数据库主从复制或分片的通用数据访问对象(DAO)实现。这个项目可能提供了一种方式来管理和操作在主库和从库之间的...
"commondao_1213.zip"这个压缩包可能包含了一个Java项目或库,实现了这个通用DAO的概念,用于简化数据库访问的代码。 在Java开发中,DAO层是三层架构或者MVC模式中的重要组成部分,它的主要任务是隔离业务逻辑与...
Why CommonDAO? 以简洁为主,其前身是以spring jdbc为基础的扩展,为的是提高可用性,当时在spring jdbc的基础上,参考Hibernate, iBatis,目的就是简洁,高效。 之后,随着spring jdbc的发展,spring 的orm走向...
CommonDao.xml
接下来,实现这个接口的抽象类`CommonDAO`,它包含了对Hibernate SessionFactory的引用以及一个构造方法,用于获取具体的实体类类型。`CommonDAO`提供了`SessionFactory`的getter和setter方法,以及一个构造器,通过...
例如,在上面的例子中,`<property name="commonDao" ref="commonDao"></property>`表示通过setter方法注入了一个名为“commonDao”的Bean到“functions”Bean中。 ### 4. 配置管理 Spring框架提供了强大的配置...
在开发Spring框架相关的Java应用时,可能会遇到"The type org.springframework.dao.support.DaoSupport cannot be resolved"的错误提示。这个错误通常意味着编译环境无法找到`DaoSupport`类,这是Spring DAO模块中的...
也可以通过RMI,支持分布式网站系统,电商平台,手机app服务器 Dao数据操作仅仅增删改查,没有特殊需求,不需要写Dao接口和Dao实现类,用下面这种引入方式: @DataAccess(entity = RolePo.class) private CommonDao,...
public class CommonDAO { /** * 修改数据 * @param sql sql语句 * @param param 参数列表 * @return 修改记录行数 */ public int update(String sql,List param){ int row = -1; Connection conn = null;...
commonDao.insertDataInfo(so.getSql(), so.getValues()); } else { sst.addCondition("ASTAG_UUID", map.get("ASTAG_UUID")); SqlObject so = sst.getSqlObject4Update(); commonDao.updateDataInfo(so.getSql...
核心业务相关对象的配置中,`CommonDAO`继承自`baseDao`,类型为`FastSpring.Core.CommonDAO,FastSpring.Net.Core`,这表明它是DAO层的一部分,处理核心业务的数据操作。`CommonManager`则依赖于`CommonDAO`,类型为...
CommonDAO.java是一个基础的DAO类,用于封装常见的数据访问操作。在本例中,重点关注了`getRows()`方法和`rsHandler()`方法,它们分别用于获取查询结果的总记录数和处理结果集的偏移量及限制,实现了分页的关键逻辑...
**SpringBoot整合SpringData JPA** 是一个现代Java开发中的常见技术栈,它结合了Spring Boot的便捷性和Spring Data JPA的数据访问效率。Spring Boot简化了应用的初始搭建以及配置,而Spring Data JPA则是Spring ...
在本例中,我们定义了一个名为`TodoCall`的Bean,并为其注入了一个名为`commonDao`的DAO对象。 ```xml <property name="dao" ref="commonDao"/> ``` 其中`TodoCall`类继承自`TimerTask`,并实现了`run`方法,...
service接口 ... ... ... public interface EmployeeService extends EntityService<Employee>{ ...public class EmployeeServiceImpl extends EntityServiceImpl<Employee> implements EmployeeService{ ...
传智播客的mybatis视频,看过以后觉得对自己mybatis框架的学习有很大帮助,整个视频单阅读来说大概是满打满算2天的量,建议学习者用于mybatis框架的入门和进阶。加我云盘好友,有需要的资源我可以免费分享给大家
public class CommonDAO { protected DataSource ds; public int getRows() { return this.count; } public void rsHandler(ResultSet rs, int off, int limit) throws SQLException { try { int count = 0...
return this.commondao.getListByHqls(hql); } public List<WposCheckQuarterly> getListByHqls(String hql) { List<WposCheckQuarterly> objList = new ArrayList(); objList = this.getSession().createQuery...
为了解决 DAO 类之间的共性,创建了 CommonDAO,集中处理数据源的获取。 3. **事务管理**:在实践中发现,手动提交事务可以提高效率,于是在 DAO 中添加了事务处理代码。但由于事务管理代码分散,难以统一维护。 4...