`

commonDao

阅读更多

 

 

--------------------------------------------------------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);
            }
    }

}

分享到:
评论

相关推荐

    Java的ORM框架ComnonDAO.zip

    Why CommonDAO? 以简洁为主,其前身是以spring jdbc为基础的扩展,为的是提高可用性,当时在spring jdbc的基础上,参考Hibernate, iBatis,目的就是简洁,高效。 之后,随着spring jdbc的发展,spring 的orm走向...

    spring-master-slave-commondao

    NULL 博文链接:https://wangxinchun.iteye.com/blog/2093977

    commondao_1213.zip

    commondao_1213.zip

    CommonDao.xml

    CommonDao.xml

    ERP CRM SCM 等系统开发框架

    也可以通过RMI,支持分布式网站系统,电商平台,手机app服务器 Dao数据操作仅仅增删改查,没有特殊需求,不需要写Dao接口和Dao实现类,用下面这种引入方式: @DataAccess(entity = RolePo.class) private CommonDao,...

    java万能DAO

    public class CommonDAO { /** * 修改数据 * @param sql sql语句 * @param param 参数列表 * @return 修改记录行数 */ public int update(String sql,List param){ int row = -1; Connection conn = null;...

    vue与后台对街格式

    commonDao.insertDataInfo(so.getSql(), so.getValues()); } else { sst.addCondition("ASTAG_UUID", map.get("ASTAG_UUID")); SqlObject so = sst.getSqlObject4Update(); commonDao.updateDataInfo(so.getSql...

    springBoot整合springData JPA

    一个项目包含了常用查询场景,包含单表查询部分字段,联合查询映射自定义对象,动态sql。一个项目零基础到开发,只需要三小时学习。

    一个通用的dao和service包

    service接口 ... ... ... public interface EmployeeService extends EntityService&lt;Employee&gt;{ ...public class EmployeeServiceImpl extends EntityServiceImpl&lt;Employee&gt; implements EmployeeService{ ...

    mybatis框架视频传智播客

    传智播客的mybatis视频,看过以后觉得对自己mybatis框架的学习有很大帮助,整个视频单阅读来说大概是满打满算2天的量,建议学习者用于mybatis框架的入门和进阶。加我云盘好友,有需要的资源我可以免费分享给大家

    Common JDBC DAO组件系统库及帮助手册

    CommonJDBCDAO组件则是由国人自主开发实现的基于JDBC API的数据访问组件,保留有O/R Mapping工具的简便性,也具有JDBCTemplate的灵活性,对JDBC API进行彻底的封装和简化,而且使用简单,目前的版本完全兼容于Oracle...

    解决The type org.springframework.dao.support.DaoSupport cannot be resolved.bao报错

    解决The type org.springframework.dao.support.DaoSupport cannot be resolved.bao报错

    JMay:JMay是一款基于Spring、SpringMVC、Mybatis、Atomikos集成框架,用于快速搭建跨数据库、分布式事务(JTA)支持的java web项目

    JMay是什么JMay是一款基于Spring、SpringMVC、Mybatis、...3.在Mapper之上封装Dao层,提供CommonDao类支持常规增删改查操作;4.多数据源支持,AOP动态数据源切换。基于Atomikos,分布式事务支持(需要数据库支持XA规范)

    Common JDBC DAO组件系统库-开源

    CommonJDBCDAO组件则是由国人自主开发实现的基于JDBC API的数据访问组件,保留有O/R Mapping工具的简便性,也具有JDBCTemplate的灵活性,对JDBC API进行彻底的封装和简化,而且使用简单,目前的版本完全兼容于Oracle...

    basic-common2h3:基于hibernate3的BaseDao,完成增删改查、分页操作

    #basic-common2h3 实现一个基于hibernate3的基本的dao,实现CRUD; 一行代码完成CRUD,提供多种重载方法详见IBaseDao,但是项目需要基于SSH框架。 ============ 使用方法,以用户添加为例: 1、定义User类,并提供...

    swing-rss-reader:Java Swing 和 Spring Rss Reader 使用 h2 数据库进行链接存储

    #Swing Rss 阅读器##Description:## Java Swing 和 Spring Rss Reader 使用 h2 数据库进行链接存储####version 2.0 注释:#### 添加了CommonModel和CommonDao 。 (可以用更少的代码扩展实体和 dao 类) 应用程序类...

Global site tag (gtag.js) - Google Analytics