CRM-BaseDao的抽取
2015-09-22 21:16
316 查看
CRM-BaseDao的抽取
本次开发中,为了避免每次都编写重复的Dao代码,对每种Dao相似的代码进行了抽取,形成BaseDao。其他Dao只需要继承BaseDao即可,这样我们可以对其他的Dao只需要编写特定Dao操作即可(根据业务层的需求)。
具体代码实现如下:
//BaseDao的实现 public abstract class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> { Class<T> clazz; public BaseDaoImpl(){ ParameterizedType pt = (ParameterizedType)this.getClass().getGenericSuperclass();//BaseDaoImpl<User> clazz = (Class<T>)pt.getActualTypeArguments()[0]; } @Override public void save(T entity) { getHibernateTemplate().save(entity); } @Override public void update(T entity) { getHibernateTemplate().update(entity); } @Override public void delete(Serializable id) { getHibernateTemplate().delete(findObjectById(id)); } @Override public T findObjectById(Serializable id) { return getHibernateTemplate().get(clazz, id); } @Override public List<T> findObjects() { Query query = getSession().createQuery("FROM " + clazz.getSimpleName()); return query.list(); } } //UserDao接口 public interface IUserDao extends BaseDao<User> { } //UserDao的实现, 继承BaseDao实现, 实现UserDao接口 public class UserDaoImpl extends BaseDaoImpl<User> implements IUserDao { }
相关文章推荐
- maven 学习总结(三)——使用Maven构建项目
- poj Asteroids (二分匹配之匈牙利算法)
- (2.3.11)Java中HashMap遍历的两种方式
- 第四十四天 指南针、百度地图
- grials相关安装文件可以从我的网盘下载
- 嵌入式linux的tftp安装配置及tftp命令用法
- bzoj2751&CodeVS1853 容易题
- Java虚拟机2:Java内存区域及对象
- ExtJs4得知(五岁以下儿童)主要的Ext分类
- vSphere Client 启用“复制”和“粘贴”选项
- 乘法
- 《Linux内核设计的艺术》总结: 进程1的创建
- 【小知识点总结】Java中的split函数的用法
- poj3020
- Mediplayer的基本使用方式
- QT皮肤(QSS)编程
- 查询数据库里所有表名和字段名的语句
- 服务端开发入门与进阶指南
- uva 1001(最短路)
- 游戏九宫格