栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

基于泛型的BaseDao,BaseService实现增强版

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于泛型的BaseDao,BaseService实现增强版

第 1 步:编写接口 baseDao
public interface baseDao>{	boolean save(T u);		boolean deleteById(ID id);		boolean update(T u);		T getById(ID id);		List getAll();}
第 2 步:编写基本实现类 baseDaoImpl
@SuppressWarnings("all")public abstract class baseDaoImpl> 	implements baseDao{	@Resource(name = "sqlSessionFactory")	protected SqlSessionFactory sqlSessionFactory;		private Class curDao;		public baseDaoImpl()	{	    ParameterizedType pt = (ParameterizedType)getClass().getGenericSuperclass();	   	    this.curDao = ((Class)pt.getActualTypeArguments()[2]);	}	@Override	public boolean save(T u)	{		return getMapper().save(u);	}	@Override	public boolean deleteById(ID id)	{		return getMapper().deleteById(id);	}	@Override	public boolean update(T u)	{		return getMapper().update(u);	}	@Override	public T getById(ID id)	{		return getMapper().getById(id);	}	@Override	public List getAll()	{		return getMapper().getAll();	}	protected SqlSession getSession()	{		return sqlSessionFactory.openSession();	}	protected I getMapper()	{		return getSession().getMapper(curDao);	}}
注:AbstractEntity为通用实体抽象父类,可用于定义通用的字段,例如
public abstract class AbstractEntity implements Serializable{	private static final long serialVersionUID = 66532814011080848L;		private Long id;	//创建时间	private Date createDate;	//修改时间	private Date modifyDate;	public Long getId()	{		return id;	}	public void setId(Long id)	{		this.id = id;	}	public Date getCreateDate()	{		return createDate;	}	public void setCreateDate(Date createDate)	{		this.createDate = createDate;	}	public Date getModifyDate()	{		return modifyDate;	}	public void setModifyDate(Date modifyDate)	{		this.modifyDate = modifyDate;	}}
第 3 步:编写 baseService
public interface baseService>{	boolean save(T u);		boolean deleteById(ID id);		boolean update(T u);		T getById(ID id);		List getAll();}

第 4 步:编写 baseServiceImpl
@Transactionalpublic abstract class baseServiceImpl>	implements baseService{		private baseDao baseDao;		@Override	public boolean save(T u)	{		if (u != null && u.getCreateDate() == null)		{			u.setCreateDate(new Date());		}		if (u != null && u.getModifyDate() == null)		{			u.setModifyDate(new Date());		}		return baseDao.save(u);	}	@Override	public boolean deleteById(ID id)	{		return baseDao.deleteById(id);	}	@Override	public boolean update(T u)	{		if (u != null && u.getModifyDate() != null)		{			u.setModifyDate(new Date());		}		return baseDao.update(u);	}	@Override	public T getById(ID id)	{		return baseDao.getById(id);	}	@Override	public List getAll()	{		return baseDao.getAll();	}	public void setbaseDao(baseDao baseDao)	{		this.baseDao = baseDao;	}}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/245930.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号