国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java 中利用泛型和反射機制抽象DAO的實例

Java 中利用泛型和反射機制抽象DAO的實例

2020-11-30 15:27ykdsg Java教程

這篇文章主要介紹了Java 中利用泛型和反射機制抽象DAO的實例的相關資料,需要的朋友可以參考下

Java 中利用泛型反射機制抽象DAO的實例

一般的DAO都有CRUD操作,在每個實體DAO接口中重復定義這些方法,不如提供一個通用的DAO接口,具體的實體DAO可以擴展這個通用DAO以提供特殊的操作,從而將DAO抽象到另一層次,令代碼質量有很好的提升

1.通用接口

?
1
2
3
4
5
6
7
8
9
10
import java.io.Serializable;
import java.util.List;
public interface BaseDao<T> {
  T get(Serializable id);
  List<T> getAll();
// List<T> find(String hql,);
  void save(Object o);
  void remove(Object o);
  void update(Object o);
}

2.DAO基類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class HibernateBaseDao<T> extends HibernateDaoSupport implements BaseDao<T>{
  private Class<T> entityClass;
  public HibernateBaseDao() {
    Type genType = getClass().getGenericSuperclass();
    Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
    entityClass = (Class)params[0];
  }
  public T get(Serializable id) {
    return (T)getHibernateTemplate().load(entityClass, id);
  }
   public List<T> getAll() {
    return getHibernateTemplate().loadAll(entityClass);
  }
  public void save(Object o) {
    getHibernateTemplate().saveOrUpdate(o);
  }
  public void remove(Object o) {
    getHibernateTemplate().delete(o);
  }
  public void update(Object o) {
    getHibernateTemplate().update(o);   
  }
}

這里利用反射機制獲取泛型對應的實體類的類型

3.實體DAO類

?
1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Iterator;
import java.util.List;
import com.baobaotao.dao.ForumDao;
import com.baobaotao.dao.HibernateBaseDao;
import com.baobaotao.domain.Forum;
public class ForumHibernateDao2 extends HibernateBaseDao<Forum> implements ForumDao{
  public long getForumNum() {
    Iterator iter = getHibernateTemplate().iterate(
    "select count(f.forumId) from Forum f");
    return ((Long)iter.next());
  }
}

通過擴展泛型DAO基類,就自動擁有基類的數據操作功能,只要提供特殊的功能即可,實體DAO的編碼生產率得到了極大的提高

 以上就是Java 中利用泛型和反射機制抽象DAO的實例的講解,大家如果對泛型及反射機制有不明白的可以查詢本站的相關文章或者留言交流,到社區提問,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/ykdsg/article/details/3628734

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久久亚洲国产天美传媒修理工 | 一区视频 | 久久精品亚洲精品 | 欧美激情一区 | 婷婷激情五月 | 青草精品| 一区二区三区在线视频播放 | 亚洲成人在线观看视频 | 精品国产精品三级精品av网址 | 日本电影网址 | 国产精品视频网站 | 亚洲成人三级 | 亚洲电影一区二区三区 | 精品久久久久国产 | 香蕉大人久久国产成人av | 成人在线观看免费爱爱 | 国产精品1区 | 日韩午夜电影 | 亚洲视频一区在线观看 | 天堂俺去俺来也www久久婷婷 | 91综合网 | 成年网站| 无码日韩精品一区二区免费 | 在线视频亚洲 | 亚洲国产成人av | 骚虎av| 精品久久久久久亚洲综合网 | 国产精品成人一区二区 | 午夜私人影院在线观看 | 日韩成人欧美 | 欧洲精品在线观看 | 久久伊人精品 | 国产一级高清视频 | 成人av免费观看 | 成人国产精品免费观看 | 国产精品二区一区二区aⅴ污介绍 | 96成人爽a毛片一区二区 | 国产精品久久久久久久久久东京 | 小视频在线 | 黄色在线观看 | 亚洲高清视频在线观看 |