现在的位置: 首页 > 综合 > 正文

JAVA泛型实例

2013年10月28日 ⁄ 综合 ⁄ 共 1719字 ⁄ 字号 评论关闭
 JAVA中泛型的一个实例(DAO)

package com.fx.dao;

import java.io.Serializable;

import java.util.List;

import org.hibernate.HibernateException;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.springframework.orm.hibernate3.HibernateCallback;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.fx.comm.UtilHQLString;

import com.fx.dao.Imp.DAOImpl;

public class DAO<T> extends HibernateDaoSupport implements DAOImpl<T> {

    SessionFactory sessionFactory;

private Class<T> persistent = null;

public Class<T> getPersistent() {

  return persistent;

}

public void setPersistent(Class<T> persistent) {

  this.persistent = persistent;

}

­

public DAO() {

}

public DAO(Class<T> persistent) {

  this.persistent = persistent;

}

/**

  *

  * Description 根据ID和类型查找实体信息

  *

  * @param clazz

  *            实体类型

  * @param id

  *            实体ID

  * @return 实体

  * @throws Exception

  *             DAO执行出错时抛出

  */

public T findById(Class<T> clazz, String id) throws Exception {

  StringBuffer bf = new StringBuffer();

  try {

   bf.append(UtilHQLString.getNowTimeSeconde());

   bf.append("/n你调用的DAO查询方法:").append("findById/n");

   log.info(bf.toString());

   return (T) getHibernateTemplate().get(clazz,Integer.parseInt(id));

  } catch (RuntimeException e) {

   log.error(e.getMessage());

   throw new Exception(UtilHQLString.getNowTimeSeconde()

     + "按ID查找实体时数据库访问异常" + e.getMessage());

  }

}

/**

  * 更新一组实体对象

  */

public void update(List<T> entity) throws Exception {

  for(int i=0;i<entity.size();i++){

  getHibernateTemplate().update(entity.get(i));

  }

}

/**

  * 删除一组实体对象

  */

 

public void delete(Class<T> clazz, Long[] args) throws Exception {

  for(int i=0;i<args.length;i++){

   if(args[i]>0){

    log.debug("删除对象"+args[i]);

    getHibernateTemplate().delete(getHibernateTemplate().load(clazz,args[i]));

   }

   }  

}  

}

抱歉!评论已关闭.