精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Hibernate的重要技術簡介

開發 后端
Hibernate技術session操縱數據庫@對象的狀態:瞬時(Transient) - 由new操作符創建,且尚未與Hibernate Session 關聯的對象被認定為瞬時(Transient)的。

Hibernate技術有很多值得學習的地方,這里我們主要介紹Hibernate技術的一些強大功能,包括Hibernate技術技術開發流程等方面。

Hibernate技術開發流程:

1.配置文件:

@.properties格式的

@.xml格式的(常用hibernate.cfg.xml)(放在src下面或者是wen-inf\classes下面)

  1. SessionFactory sf=new Configuration().configure().buildSessionFactory();  
  2.  
  3.    或者SessionFactory sf=new Configuration().configure("db.cfg.xml").buildSessionFactory();   

2.編寫映射文件:

例如:User.hbm.xml 映射文件的編寫有很多內容,可以采用相關的根據自動生成映射文件,在這里就不介紹了

3.寫持久化類:

例如:User.java

4.在編寫DAO之前先寫HibernateSessionFactory類

  1. package com.wuxiaoxiao.hibernate;  
  2. import org.hibernate.Session;  
  3. import org.hibernate.HibernateException;  
  4. import org.hibernate.cfg.Configuration;  
  5. public class HibernateSessionFactory{  
  6. private static final String CONFIG_FILE_LOCATION="/hibernate.cfg.xml";  
  7. private static final ThreadLocal threadLocal=new ThreadLocal();  
  8. private static final Configuration cfg=new Configuration();  
  9. private static org.hibernate.SessionFactory sessionFactory;  
  10. //取得session  
  11.  
  12. public static Session currentSession()throws HibernateException{  
  13. Session session=threadLocal.get();  
  14. if(session==null){  
  15.    if(sessionFactory==null){  
  16.       try{  
  17.        cfg.configuration(CONFIG_FILE_LOCATION);  
  18. sessionFactory=cfg.buildSessionFactory();  
  19.       }catch(Exception e){  
  20.         System.err.println("%%%Error Creating SessionFactory %%%%");  
  21. e.printStackTrace();  
  22.       }   
  23.    }  
  24. session=sessionFactory.openSession();  
  25. threadLocal.set(session);  
  26. }  
  27. return session;  
  28. }   
  29. //關閉session  
  30.  
  31. public static void closeSession()throws HibernateException{  
  32. Session session=(Session)threadLocal.get();  
  33. threadLocal.set(null);  
  34. if(session!=null)  
  35.   session.close();  
  36. }  
  37. }  

threadLocal是thread local variable,為每一個訪問它的線程都提供一個變量值的副本,是每一個線程都可以獨立的改變自己的副本,而不會和其他線程的副本沖突。ThreadLocal有三個主要的方法:initValue()初始化變量值,get(),set(Object)例子:

  1. public class ConnectionFactory{  
  2. private fianl String URL="jdbc:mysql://localhsot/mysatabase";  
  3. private static ThreadLocal<Connection> connectionHolder=new ThreadLocal<Connection>(){  
  4. public COnnection initValue(){  
  5. try{  
  6. return DriverManager.getConnection(URL);}catch(Exception e){}  
  7. }  
  8. };  
  9. public Connection getConnection(){  
  10. return connectionHolder.get();  
  11. }  
  12. }  

5.編寫DAO例如:

  1. public User getUser(String username)throws HibernateException{  
  2. Session session=null;  
  3. Transaction tx=null;  
  4. User user=null;  
  5. try{  
  6. session=HibernateSessionFactory.currentSession();  
  7. tx=session.beginTransaction();  
  8. Query query=session.createQuery("from User where username=?");  
  9. query.setString(0,username.trim());  
  10. user=(User)query.uniqueResult();  
  11. query=null;  
  12. tx.commit();  
  13. }catch(HibernateException e){throw e;  
  14. }finally{  
  15. if(tx!=null)  
  16.   tx.rollback();  
  17. HibernateSessionFactory.closeSession();  
  18. }  
  19. return user;  
  20. }  

6.編寫service類

public boolean valid(String username,String password){}

下面主要介紹session操縱數據庫@對象的狀態:

Hibernate定義并支持下列對象狀態(state):

瞬時(Transient) - 由new操作符創建,且尚未與Hibernate Session 關聯的對象被認定為瞬時(Transient)的。瞬時(Transient)對象不會被持久化到數據庫中,也不會被賦予持久化標識(identifier)。 如果瞬時(Transient)對象在程序中沒有被引用,它會被垃圾回收器(garbage collector)銷毀。 使用Hibernate Session可以將其變為持久(Persistent)狀態。(Hibernate會自動執行必要的SQL語句)

持久(Persistent) - 持久(Persistent)的實例在數據庫中有對應的記錄,并擁有一個持久化標識(identifier)。 持久(Persistent)的實例可能是剛被保存的,或剛被加載的,無論哪一種,按定義,它存在于相關聯的Session作用范圍內。 Hibernate會檢測到處于持久(Persistent)狀態的對象的任何改動,在當前操作單元(unit of work)執行完畢時將對象數據(state)與數據庫同步(synchronize)。 開發者不需要手動執行UPDATE。將對象從持久(Persistent)狀態變成瞬時(Transient)狀態同樣也不需要手動執行DELETE語句。

脫管(Detached) - 在數據庫中存在記錄,但不與session關聯!與持久(Persistent)對象關聯的Session被關閉后,對象就變為脫管(Detached)的。 對脫管(Detached)對象的引用依然有效,對象可繼續被修改。脫管(Detached)對象如果重新關聯到某個新的Session上, 會再次轉變為持久(Persistent)的(在Detached其間的改動將被持久化到數據庫)。 這個功能使得一種編程模型,即中間會給用戶思考時間(user think-time)的長時間運行的操作單元(unit of work)的編程模型成為可能。 我們稱之為應用程序事務,即從用戶觀點看是一個操作單元(unit of work)

@使用sve()保存對象,使之成為持久化

  1. Session session=HibernateSessionFactory.currentSession();  
  2. User user=new User();  
  3. user.setName("wuxiaoxiao");  
  4. user.setPassword(123456);  
  5. session.save(user);  

@使用load()裝在對象

  1. User user=(User)session.load(User.class,new Integer(1));  

若對象不存在就會拋出無法修復的異常

@使用get()裝在對象

  1. User user=(User)session.get(User.class,new Integer(4));  

若對象不存在的話,就返回null @使用flush()強制提交刷新

  1. User user=(User)session.get(User.class,new Integer(4));  
  2. user.setUsername("ranran");  
  3. user.setPassword("123456");  
  4. session.flush();  
  5.    

對user的更新是在同一個session中,不需要用update()或者saveOrUpdate()

@使用delete()移除持久化對象

  1. User user=(User)session.get(User.class,new Integer(4));  
  2. session.delete(user);  
  3. session.flush();  
  4.  

@使用update()方法提交托管狀態的對象

update()用于根據給定的托管對象實例的標示更新對應的持久化實例!如果傳入一個持久化對象,那么update()方法就是多余的。如果傳入臨時狀態的對象就會出錯,除非認為的給臨時地給對象指定一個id。不管傳入的是什么狀態的對象,數據庫中必須要有一條記錄與這個對象的id相對應,否則拋出異常!

@saveOrUpdate()傳遞的對象在數據庫中若存在就更新,否則就插入!他和update()主要是處理托管狀態的對象!
 
@使用refresh()強制裝在對象,如果數據庫中使用了觸發器來處理對象的而某些屬性,這個方法就更有用了!

  1. session.save(user);  
  2. session.flush();  
  3. session.refresh(user);  

使用Transaction管理事務

例子:如上面編寫DAO的例子 使用Query進行HQL查詢 @不帶參數的查詢

  1. Query query=session.createQuery("from User");  

@帶參數的查詢

  1. Query query=session.createQuery("from User where username=:username");  
  2. query.setString("username","wuxiaoxiao");  
  3. 或者  
  4. List names=new ArrayList();  
  5. names.add("wuxiaoxiao");  
  6. names.add("ranran");  
  7. Query query=session.createQuery("from User where username in (:namelist)");  
  8. query.setParameterList("namelist",names);  
  9. 或者  
  10. Query query=session.createQuery("from User where username=?");  
  11. query.setSrting(0,"wuxiaoxiao");  

@取得list結果集

 List list=query.list();

@取得迭代列表結果集

  1. Iterator iterator1=query.iterator();  
  2. 或者  
  3. Iterator iterator2=query.list().iterator();  
  4. while(iterator.hasNext())  
  5.  User user=(User)iterator2.next();  

@取得一個對象

  1. Query query=session.createQuery("from User where username=?");  
  2. query.setString(0,"wuxiaoxiao");  
  3. User user=(User)query.uniqueResult();  
  4.    

@標量查詢

  1. Iterator results = sess.createQuery(  
  2.         "select user.name,count(user.email) from User user " +  
  3.         "group by user.name")  
  4.         .list()  
  5.         .iterator();  
  6.           
  7. while ( results.hasNext() ) {  
  8.     Object[] row = (Object[]) results.next();  
  9.     String type = (String) row[0];  
  10.     Integer count = (Integer) row[1];  
  11.     .....  

@分頁查詢

  1. Query q = sess.createQuery("from DomesticCat cat");  
  2. q.setFirstResult(20);  
  3. q.setMaxResults(10);  
  4. List cats = q.list(); 

@創建sql查詢

使用Criteria進行條件查詢

  略.............

【編輯推薦】

  1. Hibernate入門學習寶典
  2. Hibernate屬性簡單分析
  3. Struts-Spring-Hibernate案例
  4. 簡述Hibernate配置連接池
  5. 對Hibernate中get()與load()不同點分析
責任編輯:仲衡 來源: chinaunix
相關推薦

2009-09-24 16:53:47

Hibernate A

2009-06-02 17:18:10

hibernate框架簡介

2009-09-21 13:19:06

Hibernate s

2009-09-27 09:46:45

Hibernate會話

2009-09-29 17:00:08

Hibernate c

2009-06-30 14:08:00

Hibernate緩存

2009-06-26 16:19:32

Hibernate實現

2009-06-12 14:40:38

Hibernate AHibernate接口

2009-09-08 09:37:03

LINQ重要組成部分

2009-06-22 15:39:00

java技術簡介

2009-02-11 09:37:32

Hibernate分頁技術JSP

2024-06-17 00:00:02

前端技術JavaScript

2011-03-24 11:37:41

Hibernate

2009-09-25 08:49:22

Hibernate集合

2016-04-07 09:39:17

LPWAN物聯網

2011-11-04 12:56:55

無線USB

2009-09-22 16:49:42

Hibernate分頁

2016-12-26 15:55:08

技術思維評估

2009-09-25 14:23:39

2009-09-25 10:17:21

Hibernate延遲
點贊
收藏

51CTO技術棧公眾號

18涩涩午夜精品.www| 日韩av不卡一区二区| 亚洲激情在线观看| 日韩精品视频一区二区在线观看| 五月激情丁香婷婷| 视频在线观看91| 蜜月aⅴ免费一区二区三区| 97精品人人妻人人| 秋霞国产精品| 亚洲激情第一区| 久久久久网址| 国产精品毛片久久久久久久av| 亚洲高清网站| 色老头一区二区三区在线观看| 欧美美女性视频| av福利在线导航| 国产亚洲短视频| 亚洲综合色av| 亚洲 小说区 图片区| 欧美一区成人| 亚洲男人7777| 午夜影院福利社| 高清亚洲高清| 色综合天天狠狠| 精品一二三四五区| 你懂的免费在线观看视频网站| 国产在线精品视频| 热久久免费国产视频| avove在线播放| 欧美精品一区二区三区精品| 亚洲成人xxx| 午夜视频在线观| 欧美三区四区| 欧美日韩性视频| 国产91沈先生在线播放| 视频一区二区三区不卡| 久久奇米777| 亚洲伊人一本大道中文字幕| a片在线免费观看| 国产欧美精品| 欧美精品videos另类日本| 久久精品色妇熟妇丰满人妻| 伊人久久大香线蕉av不卡| 日韩免费高清av| 欧美又黄又嫩大片a级| 3d性欧美动漫精品xxxx软件| 亚洲福利国产精品| 国产精品久久国产| 国产在线高潮| 国产黄a三级三级三级av在线看| 99在线热播精品免费| 99国产在线视频| 国产日韩免费视频| 精品一区二区三区香蕉蜜桃| 国产精品爽黄69| 波多野结衣 久久| 午夜亚洲视频| 欧美怡红院视频一区二区三区| 国产主播在线观看| 激情av一区| 国语自产精品视频在线看| 免费在线观看国产精品| 你懂的成人av| 久久久久久久久久久亚洲| 久热精品在线观看| 亚洲伦伦在线| 91tv亚洲精品香蕉国产一区7ujn| 日本免费观看视| 性8sex亚洲区入口| 日韩av大片在线| 国产美女www| 久久精品国产第一区二区三区 | 蜜桃视频在线观看免费视频| 午夜精品福利一区二区三区蜜桃| 久久久久久久久久久视频| 中文字幕乱码中文乱码51精品 | 97在线视频人妻无码| 精品一区二区三区香蕉蜜桃 | 牛牛视频精品一区二区不卡| 日韩精品电影网| 97超碰在线资源| 成人婷婷网色偷偷亚洲男人的天堂| 在线电影av不卡网址| 大地资源高清在线视频观看| 欧美在线二区| 97在线观看免费| 欧美一级黄视频| 国模少妇一区二区三区| 国产精品中出一区二区三区| 四虎精品在永久在线观看| 国产三级欧美三级| 大桥未久一区二区三区| 超碰在线公开| 日韩欧美中文第一页| 亚洲美女性囗交| 成人av资源网址| 国产一区二区三区丝袜| 四虎精品免费视频| 99国产精品99久久久久久粉嫩| 欧洲亚洲妇女av| 国产乱码精品一区二三区蜜臂| 成人av高清在线| 亚洲国产欧美日韩| 国产在线xxx| 欧美综合天天夜夜久久| 亚洲av无一区二区三区久久| 欧美一区 二区| 精品国内亚洲在观看18黄 | 国产精品视频久| 亚洲高清精品视频| 国产日产精品1区| 欧美一区二区三区综合| 久久夜夜操妹子| 欧美变态口味重另类| 性欧美精品男男| 亚洲国产黄色| 成人伊人精品色xxxx视频| 欧洲伦理片一区 二区 三区| 亚洲人成人一区二区在线观看 | 日韩国产欧美视频| 国产欧美一区二区视频| 国产成人l区| 欧美在线观看视频一区二区三区| 亚洲无人区码一码二码三码| 色777狠狠狠综合伊人| 欧美洲成人男女午夜视频| 国产黄色小视频在线观看| 亚洲国产高清在线| 日本在线视频www| 久久久精品国产**网站| 成人97在线观看视频| 中文字幕你懂的| 久久久久99精品国产片| 尤物av无码色av无码| 天堂va在线高清一区| 日韩视频永久免费观看| 中国一级特黄视频| 国产亚洲一区二区三区四区| 777精品久无码人妻蜜桃| 成人高潮a毛片免费观看网站| 久久亚洲春色中文字幕| 久操视频在线免费观看| 久久毛片高清国产| 国产av无码专区亚洲精品| 美女一区二区在线观看| 久久久日本电影| 欧美特黄一级视频| 婷婷激情综合网| 精品人妻一区二区免费视频| 亚洲日本黄色| 国产在线精品日韩| 久久影院午夜精品| 日韩高清a**址| 久久久精品视频网站 | 亚洲欧洲综合网| 久久国内精品自在自线400部| 亚洲二区三区四区| 免费视频成人| 麻豆乱码国产一区二区三区| 国产精品国产三级国产普通话对白 | 91丨九色丨国产在线| 黄a在线观看| 337p亚洲精品色噜噜噜| 东方av正在进入| 日本不卡在线视频| 亚洲成人自拍| 色综合视频一区二区三区日韩| 亚洲深夜福利视频| 国产99免费视频| 国产午夜精品理论片a级大结局| 日本免费一级视频| 国产一区二区三区四区五区传媒| 国产精品av网站| 不卡在线视频| 欧美美女一区二区三区| 亚洲熟女毛茸茸| 成人性生交大片免费看视频在线| 国产真人做爰毛片视频直播| 国产女人18毛片水真多18精品| 韩国19禁主播vip福利视频| 婷婷丁香花五月天| 日韩欧美精品免费在线| 国产中年熟女高潮大集合| 鲁大师成人一区二区三区| 日本不卡一区二区三区在线观看| 九九九伊在线综合永久| 久久国产精品久久久久久| 精品国产伦一区二区三区| 亚洲影院免费观看| 熟女丰满老熟女熟妇| 国产日韩一区二区三区在线播放| 免费精品视频一区| 黄色精品视频网站| 精品国产拍在线观看| 一区二区日韩在线观看| 午夜精品aaa| 微拍福利一区二区| 国产麻豆9l精品三级站| 欧美 日韩 亚洲 一区| 日韩免费av| 91成人伦理在线电影| 丁香花高清在线观看完整版| 精品一区电影国产| 伊人色综合久久久| 一级做a爱片久久| 免费看黄色的视频| 国产精品白丝av| 91淫黄看大片| 欧美在线看片| 少妇特黄a一区二区三区| 国产精品日本一区二区三区在线 | 亚洲人成在线影院| 三区精品视频| 日本妇女一区| 成人有码在线播放| 性欧美18~19sex高清播放| 色偷偷888欧美精品久久久| 少妇精品高潮欲妇又嫩中文字幕| 在线观看精品一区| 久久久久亚洲av无码专区 | 欧美日韩中国免费专区在线看| 99国产精品无码| 91女神在线视频| 日本黄色一级网站| 免费一级片91| 91免费视频网站在线观看| 综合久久综合| 中文字幕中文字幕99| 日韩极品在线| 亚洲综合日韩中文字幕v在线| 欧美大片免费观看网址| 97人人爽人人喊人人模波多| 老司机精品影院| 亚洲一区第一页| 亚洲色图欧美视频| 欧美videos大乳护士334| 中文字幕+乱码+中文乱码www| 午夜精品久久久久久不卡8050| 极品久久久久久| 久久综合一区二区| 亚洲av无码一区二区二三区| 国产成人精品亚洲日本在线桃色| wwwwxxxx日韩| 美女精品在线| 国产欧美高清在线| 国产乱码精品| 成年人网站免费视频| 欧美视频不卡| 国产不卡一区二区视频| 一精品久久久| 在线观看日韩片| 日本午夜一区| 在线视频亚洲自拍| av资源久久| 亚洲v日韩v欧美v综合| 精品国产乱码久久久久久1区2匹| 日韩精品大片| 欧美日韩精品在线一区| 日本在线观看一区二区三区| 国产一区二区观看| 日韩wuma| 欧美色爱综合| 性欧美大战久久久久久久免费观看| 国产精品亚洲二区| 欧美连裤袜在线视频| 亚洲三级网址| 日本一区二区三区四区在线观看| 欧美色图国产精品| 亚洲一区二区三区精品动漫| 欧美激情777| 伊人久久av导航| 国产精品videosex极品| 欧美这里只有精品| 最新国产拍偷乱拍精品| 免费看国产曰批40分钟| 水蜜桃久久夜色精品一区的特点| a√天堂在线观看| 天堂久久一区二区三区| 鲁一鲁一鲁一鲁一澡| 日韩高清欧美激情| 欧美伦理片在线观看| 久久国产尿小便嘘嘘| 九九九九九九九九| 国产丶欧美丶日本不卡视频| 无码人妻久久一区二区三区蜜桃| 成人性生交大片免费| 亚洲熟妇无码av| 国产精品欧美一级免费| 成年人一级黄色片| 亚洲综合丝袜美腿| 亚洲综合图片网| 欧美日韩国产另类一区| 国产夫妻自拍av| 日韩美女av在线| 北岛玲一区二区三区| www.亚洲人.com| 91破解版在线观看| 国产欧美一区二区三区久久人妖| 欧洲精品99毛片免费高清观看 | 欧美经典三级视频一区二区三区| www..com.cn蕾丝视频在线观看免费版 | 欧美久久视频| 国产精品视频一区二区三区四区五区| 亚洲欧美日韩国产综合精品二区| 亚洲色图欧美自拍| 99精品视频在线播放观看| 国产调教在线观看| 亚洲第一搞黄网站| 中文字幕av影视| 精品国产一区二区三区四区四 | 欧美大尺度激情区在线播放| 678在线观看视频| 国产精品视频男人的天堂| 亚洲精品三区| 日本欧美色综合网站免费| 欧美aⅴ99久久黑人专区| 1024av视频| 国产精品99久久久久| 性欧美精品中出| 亚洲视频一区二区在线观看| 国产成人在线视频观看| 日韩欧美一级特黄在线播放| 国产精品毛片一区二区三区四区| 久久99热精品| 久久91超碰青草在哪里看| 久久综合色一本| 午夜精品国产| 日韩肉感妇bbwbbwbbw| www成人在线观看| 免费视频一二三区| 欧美二区乱c少妇| 午夜成人免费影院| 97视频com| 97青娱国产盛宴精品视频| 一区二区三区欧美在线| 日韩高清不卡一区二区| 波多野结衣有码| 亚洲自拍欧美精品| www.爱爱.com| 久久精品国产久精国产一老狼 | 亚洲乱码中文字幕综合| 中文永久免费观看| 中文字幕亚洲无线码在线一区| 麻豆mv在线看| 国产高清自拍99| 亚洲伦理一区| 日本五十肥熟交尾| 亚洲国产精品尤物yw在线观看| 亚洲天堂男人网| 色播久久人人爽人人爽人人片视av| 国产伦精品一区二区三区视频金莲| 7777奇米亚洲综合久久| 91av精品| 中文av一区二区三区| 国产欧美日韩另类视频免费观看| 中文字幕免费高清网站| 亚洲欧美日韩综合| 天堂av在线| 日本视频精品一区| 日日夜夜精品视频天天综合网| 日本黄色网址大全| 欧美三区在线观看| 色哟哟免费在线观看| 国产精品一二三在线| 国产精品国产三级国产在线观看| 黄大色黄女片18第一次| 亚洲欧洲日韩综合一区二区| 国产suv一区二区| 欧美大荫蒂xxx| youjizz欧美| 国产黄色特级片| 国产日产欧美一区二区视频| 国产成人麻豆免费观看| 久久精品视频免费播放| 蜜桃精品视频| 国产a级黄色大片| 97精品久久久久中文字幕| 国产91国语对白在线| 尤物九九久久国产精品的特点| 91麻豆精品国产综合久久久 | 99视频国产精品免费观看| 亚洲一级电影| 免费观看av网站| 欧美图片一区二区三区| av网站免费在线观看| 成人片在线免费看| 亚洲一区二区毛片| 亚洲精品电影院| 欧美电影免费提供在线观看| h片在线观看视频免费| 久久精品ww人人做人人爽| 日韩电影在线一区| 精品国产国产综合精品| 国产视频精品免费播放| 亚洲精品555| www国产免费| 国产女主播一区| 亚洲h视频在线观看| 欧美一级电影免费在线观看| 久久中文字幕av|