成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Eclipse下生成HibernateDAO中的幾個方法

開發 后端
本文介紹了Eclipse下生成HibernateDAO中的幾個方法,如save()方法,delete()方法,findByExample()方法等。

* save()方法提供了向數據庫中添加數據的功能,但只能添加,這個DAO沒有生成Update()的方法
* 但你可以簡單的把save()方法改稱具有Update功能:將getSession().save * (transientInstance);這句改成
* getSession().merge(transientInstance);或者getSession().saveOrUpdate
*   (transientInstance);

  1. public void save(User transientInstance) {  
  2.    log.debug("saving User instance");  
  3.    try {  
  4.     Session session=getSession();  
  5.     Transaction tx=session.beginTransaction();  
  6.     session.save(transientInstance);  
  7.     tx.commit();  
  8.     session.close();  
  9.     log.debug("save successful");  
  10.    } catch (RuntimeException re) {  
  11.     log.error("save failed", re);  
  12.     throw re;  
  13.    }  

delete()方法用來刪除的 實際上我們會用下邊的這個方法進行刪除

  1. public void delete(Integer id){  
  2.    log.debug("deleting User instance...");  
  3.    User user=findById(id);  
  4.    delete(user);  
  5. }  
  6.  
  7. public void delete(User persistentInstance) {  
  8.    log.debug("deleting User instance");  
  9.    try {  
  10.     Session session=getSession();  
  11.     Transaction tx=session.beginTransaction();  
  12.     session.delete(persistentInstance);  
  13.     tx.commit();  
  14.     session.close();  
  15.     log.debug("delete successful");  
  16.    } catch (RuntimeException re) {  
  17.     log.error("delete failed", re);  
  18.     throw re;  
  19.    }  
  20. }  

根據編號進行查找

  1. public User findById(java.lang.Integer id) {  
  2.    log.debug("getting User instance with id: " + id);  
  3.    try {  
  4.     User instance = (User) getSession().get("hbm.User", id);  
  5.     return instance;  
  6.    } catch (RuntimeException re) {  
  7.     log.error("get failed", re);  
  8.     throw re;  
  9.    }  

findByExample()方法實現的功能相當于"select * from Usertable"實現的功能就是查詢所有 數據.

  1. public List findByExample(User instance) {  
  2.    log.debug("finding User instance by example");  
  3.    try {  
  4.     List results = getSession().createCriteria("hbm.User").add(  
  5.       Example.create(instance)).list();  
  6.     log.debug("find by example successful, result size: " 
  7.       + results.size());  
  8.     return results;  
  9.    } catch (RuntimeException re) {  
  10.     log.error("find by example failed", re);  
  11.     throw re;  
  12.    }  

findByProperty()方法用來靈活的提供一種按條件查詢的方法,你可以自己定義要按什么樣的方 式查詢.

  1. public List findByProperty(String propertyName, Object value) {  
  2.    log.debug("finding User instance with property: " + propertyName  
  3.      + ", value: " + value);  
  4.    try {  
  5.     String queryString = "from User as model where model." 
  6.       + propertyName + "= ?";  
  7.     Query queryObject = getSession().createQuery(queryString);  
  8.     queryObject.setParameter(0, value);  
  9.     return queryObject.list();  
  10.    } catch (RuntimeException re) {  
  11.     log.error("find by property name failed", re);  
  12.     throw re;  
  13.    }  
  14. }  
  15.  
  16.  
  17. public List findByName(Object name) {  
  18.    return findByProperty(NAME, name);  
  19. }  
  20.  
  21. public List findBySex(Object sex) {  
  22.    return findByProperty(SEX, sex);  
  23. }  
  24.  
  25. public List findByAge(Object age) {  
  26.    return findByProperty(AGE, age);  
  27. }  
  28.  
  29. public List findAll() {  
  30.    log.debug("finding all User instances");  
  31.    try {  
  32.     String queryString = "from User";  
  33.     Query queryObject = getSession().createQuery(queryString);  
  34.     return queryObject.list();  
  35.    } catch (RuntimeException re) {  
  36.     log.error("find all failed", re);  
  37.     throw re;  
  38.    }  
  39. }  

將傳入的detached狀態的對象的屬性復制到持久化對象中,并返回該持久化對象   如果該session中沒有關聯的持久化對象,加載一個,如果傳入對象未保存,保存一個副本并作為持久對象返回,傳入對象依然保持detached狀態。

可以用作更新數據

  1. public User merge(User detachedInstance) {  
  2.    log.debug("merging User instance");  
  3.    try {  
  4.  
  5.     Session session=getSession();  
  6.     Transaction tx=session.beginTransaction();  
  7.      
  8.     User result = (User) session.merge(detachedInstance);  
  9.     tx.commit();  
  10.     session.close();  
  11.     log.debug("merge successful");  
  12.     return result;  
  13.    } catch (RuntimeException re) {  
  14.     log.error("merge failed", re);  
  15.     throw re;  
  16.    }  
  17. }  

將傳入的對象持久化并保存。 如果對象未保存(Transient狀態),調用save方法保存。如果對象已保存(Detached狀態),調用update方法將對象與Session重新關聯。

  1. public void attachDirty(User instance) {  
  2.    log.debug("attaching dirty User instance");  
  3.    try {  
  4.     getSession().saveOrUpdate(instance);  
  5.     log.debug("attach successful");  
  6.    } catch (RuntimeException re) {  
  7.     log.error("attach failed", re);  
  8.     throw re;  
  9.    }  

將傳入的對象狀態設置為Transient狀態

  1. public void attachClean(User instance) {  
  2.    log.debug("attaching clean User instance");  
  3.    try {  
  4.     getSession().lock(instance, LockMode.NONE);  
  5.     log.debug("attach successful");  
  6.    } catch (RuntimeException re) {  
  7.     log.error("attach failed", re);  
  8.     throw re;  
  9.    }  

【編輯推薦】

  1. Hibernate對各數據庫的連接方言
  2. Hibernate支持Access方言源代碼
  3. Hibernate不同數據庫的連接及SQL方言
  4. hibernate中update與saveOrUpdate的區別
  5. HIBERNATE方言

 

責任編輯:book05 來源: 百度博客
相關推薦

2019-03-27 11:30:30

Linux終端密碼生成器

2022-09-20 10:50:34

PandasNumPy

2009-06-29 17:03:41

自動生成Getter和Eclipse

2011-07-13 09:42:45

密碼crypt

2024-08-06 11:40:57

2009-07-14 17:12:26

ibatis自動代碼生

2017-01-05 14:01:38

linux密碼高強度

2013-06-27 14:57:58

Eclipse超酷插件移動開發

2020-09-16 10:16:54

數據分析量化大數據

2021-01-26 12:36:34

Pycharm系統技巧項目緩存

2009-06-08 20:07:44

Eclipse中使用p

2014-06-19 10:59:10

AndroidEclipse公共庫

2023-07-27 13:31:14

Linux語言數據

2021-11-04 11:54:30

Linux內存系統

2009-09-29 10:01:59

Eclipse插件安裝

2009-06-17 17:44:41

Eclipse插件Sp

2022-04-06 07:32:41

Java運算符變量

2009-02-26 09:55:39

2011-03-14 17:36:12

DB2更新執行計劃

2009-09-22 17:38:25

Jobs框架
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品视频 | 精品国产久 | 男女羞羞免费视频 | 91精品久久久久 | 在线色网| 久久国产免费 | 日韩国产精品一区二区三区 | 国产精品一区二区三区在线 | 国产精品国产成人国产三级 | 国产精品久久久久久久久久久久冷 | 亚洲毛片一区二区 | 天天色天天色 | 久久不射电影网 | 国产一区二区三区 | 亚洲精品国产电影 | 麻豆视频国产在线观看 | 中文字幕 国产 | 午夜精品网站 | 日韩免费av | av一区二区三区四区 | 精品一级电影 | 中文精品视频 | 国产精品视频免费播放 | 久久精品一区二区三区四区 | 天天天操操操 | 日韩欧美一级 | 久在线视频 | av片免费| 日韩欧美在线视频 | 国产精品中文字幕在线 | 免费观看一级毛片 | 91观看 | 欧美日韩高清免费 | 91国产在线视频在线 | 国产精品久久久久久久久久久久午夜片 | www.99热| 九色视频网 | 国产一区二区在线免费观看 | 久久大陆| 免费在线观看av的网站 | 中文字幕在线观看 |