BaseDao的抽取
来源:互联网 发布:windows ce6.0应用软件 编辑:程序博客网 时间:2024/06/16 23:56
创建basedao接口
package cn.kcn.dao;import java.util.List;/** *定义了一个类型T,代表任意类型; * (1)任意类型使用大写字母表示,不一定是T * @author KCN * * @param <T> */public interface BaseDao<T> { //添加 void add(T t); //修改 void update(T t); //删除 void delete(T t); //根据id查询 T findOne(int id); //查询所有 List<T> findAll();}
创建basedao接口的实现类,实现crud操作
package cn.kcn.dao;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import java.util.List;import org.springframework.orm.hibernate5.support.HibernateDaoSupport;@SuppressWarnings("all")public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> { private Class pClass; //构造方法,得到类 public BaseDaoImpl() { //1 得到当前运行类Class Class clazz = this.getClass(); //2 得到当前运行累的父类的参数化类型 BaseDaoImpl<T> Type type = clazz.getGenericSuperclass(); //使用Type子接口强转 ParameterizedType ptype = (ParameterizedType) type; //3 得到实际类型参数 <T>里面的T的具体类名 Type[] types = ptype.getActualTypeArguments(); //Type接口的实现类是Class Class tclass = (Class) types[0]; this.pClass = tclass; } //添加 public void add(T t) { this.getHibernateTemplate().save(t); } //修改 public void update(T t) { this.getHibernateTemplate().update(t); } //删除 public void delete(T t) { this.getHibernateTemplate().delete(t); } //根据id查询 public T findOne(int id) { return (T) this.getHibernateTemplate().get(pClass, id); } //查询所有 public List<T> findAll() { //使用Class里面的getSimpleName()得到类名 return (List<T>) this.getHibernateTemplate().find("from "+pClass.getSimpleName()); }}
0 0
- CRM-BaseDao的抽取
- BaseDao的抽取
- Dao操作的抽取, BaseDao
- BaseDao --- dao层的抽取
- baseDao抽取
- 三层框架下的BaseDao的抽取
- SSH抽取BaseDao
- web项目抽取BaseDao
- 人事管理系统之基本增删改查的实现以及BaseDao的抽取和封装
- Hibernate常用的BaseDao
- BaseDao 的设置
- BaseDao的方法不起作用
- mybatis-basedao的实现
- SH整合的BaseDao
- baseDao的用法
- 一种BaseDAO的写法
- BaseDao的设计思路
- 万能的BaseDao设计
- 管道和FIFO
- HDU5536 Chip Factory 【字典树】
- 37.top10热门品类之计算各品类点击、下单和支付的次数
- ActiveMQ消息持久化到Mysql数据库
- 怎样避免上线网站遭受DDOS攻击,XSS攻击,SQL漏洞,脚本注入?
- BaseDao的抽取
- KNN算法示例
- printf输出缓存问题
- Android4.4 wpa_supplicant深入分析之初识wpa_supplicant
- javascript使一个特定的表格隔行变色
- 鸟哥的linux私房菜学习笔记3
- Linux(Ubuntu)下使用OneNote
- ROS学习(基于Ubuntu 15.04 和ROS Jade)第三章 ROS核心教程 之 6 理解ROS话题
- [NFC] 读羊城通卡片信息