--------------------------------------------------------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);
}
}
}
分享到:
相关推荐
Why CommonDAO? 以简洁为主,其前身是以spring jdbc为基础的扩展,为的是提高可用性,当时在spring jdbc的基础上,参考Hibernate, iBatis,目的就是简洁,高效。 之后,随着spring jdbc的发展,spring 的orm走向...
NULL 博文链接:https://wangxinchun.iteye.com/blog/2093977
commondao_1213.zip
CommonDao.xml
也可以通过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...
一个项目包含了常用查询场景,包含单表查询部分字段,联合查询映射自定义对象,动态sql。一个项目零基础到开发,只需要三小时学习。
service接口 ... ... ... public interface EmployeeService extends EntityService<Employee>{ ...public class EmployeeServiceImpl extends EntityServiceImpl<Employee> implements EmployeeService{ ...
传智播客的mybatis视频,看过以后觉得对自己mybatis框架的学习有很大帮助,整个视频单阅读来说大概是满打满算2天的量,建议学习者用于mybatis框架的入门和进阶。加我云盘好友,有需要的资源我可以免费分享给大家
CommonJDBCDAO组件则是由国人自主开发实现的基于JDBC API的数据访问组件,保留有O/R Mapping工具的简便性,也具有JDBCTemplate的灵活性,对JDBC API进行彻底的封装和简化,而且使用简单,目前的版本完全兼容于Oracle...
解决The type org.springframework.dao.support.DaoSupport cannot be resolved.bao报错
JMay是什么JMay是一款基于Spring、SpringMVC、Mybatis、...3.在Mapper之上封装Dao层,提供CommonDao类支持常规增删改查操作;4.多数据源支持,AOP动态数据源切换。基于Atomikos,分布式事务支持(需要数据库支持XA规范)
CommonJDBCDAO组件则是由国人自主开发实现的基于JDBC API的数据访问组件,保留有O/R Mapping工具的简便性,也具有JDBCTemplate的灵活性,对JDBC API进行彻底的封装和简化,而且使用简单,目前的版本完全兼容于Oracle...
#basic-common2h3 实现一个基于hibernate3的基本的dao,实现CRUD; 一行代码完成CRUD,提供多种重载方法详见IBaseDao,但是项目需要基于SSH框架。 ============ 使用方法,以用户添加为例: 1、定义User类,并提供...
#Swing Rss 阅读器##Description:## Java Swing 和 Spring Rss Reader 使用 h2 数据库进行链接存储####version 2.0 注释:#### 添加了CommonModel和CommonDao 。 (可以用更少的代码扩展实体和 dao 类) 应用程序类...