您的位置:首页 > 编程语言 > Java开发

JAVA泛型实例

2008-12-13 16:29 309 查看
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]));
}

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: