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

解說Hibernate的工作原理實例

開發 后端
原理是什么呢?hibernate可以理解為是一個中間件它負責把java程序的sql語句接收過來發送到數據庫,而數據庫返回來的信息hibernate接收之后直接生成一個對象傳給java。

大家可能對Hibernate 有大概了解,但Hibernate 原理到底是什么,不一定清楚,這篇文章主要通過一個實例說明Hibernate 原理。希望對大家的學習有所幫助。

我們知道如果用java連接數據庫我們首先想到的就是JDBC,那么Hibernate 原理是什么呢?hibernate可以理解為是一個中間件它負責把java程序的sql語句接收過來發送到數據庫,而數據庫返回來的信息hibernate接收之后直接生成一個對象傳給java。

在說Hibernate 原理之前,先說說Hibernate的文件吧。
假設一個 student 的學生表:
sql語句:

  1. create table student(id Number(10),name varchar2(20)) 

接下來呢.我們需要有兩個hibernate特有的文件。一個是以.cfg.xml結尾的文件.一個是以.hbm.xml結尾的文件。 這兩個文件做什么用的呢?

 .cfg.xml 的作用就是連接數據庫,文件內部其實就是一個由user,password,url,driver組成的一個連接庫的基本信息。

文件的內容是這樣的:

  1. xml version='1.0' encoding='UTF-8'?> 
  2.   PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  3.   "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
  4.  
  5. <hibernate-configuration> 
  6.  <session-factory> 
  7.   <property name="connection.username">111property> 
  8.   <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:risproperty> 
  9.   <property name="dialect">org.hibernate.dialect.Oracle9Dialectproperty> 
  10.   <property name="connection.password">111property> 
  11.                 <property name="connection.driver_class">oracle.jdbc.driver.OracleDriverproperty> 
  12.  
  13.   <mapping resource="Student.hbm.xml"/> 
  14.         session-factory> 
  15. hibernate-configuration> 

這個文件的全稱應該是"你的應用名字.cfg.xml"。當前例子建立的項目名稱是one.cfg.xml 。


簡單分析一下這個文件:

包含的是程序里面的 configuration 的實例的信息。通過這個實例的方法configure我們可以從 mapping 里得到對應的表的信息和類的信息。

這個標簽是我們在程序里通過 configure 的方法 BuildSessionFactory 所得到的一個 SessionFactory 對象,這個對象可以理解為一個 statement ,我們對數據庫的所有操作都是通過它的一系列方法來實現的。

里面的那些 property 是一些連接需要的東西。其中dialect 這個是hibernate的方言屬性值,對于不同的數據庫,方言的值dialect是不同的,那么下面就列出在不同的數據庫中如何設置該dialect值(參見下表):   

RDBMS

方言

DB2

org.hibernate.dialect.DB2Dialect

DB2 AS/400

org.hibernate.dialect.DB2400Dialect

DB2 OS390

org.hibernate.dialect.DB2390Dialect

PostgreSQL

org.hibernate.dialect.PostgreSQLDialect

MySQL

org.hibernate.dialect.MySQLDialect

MySQL with InnoDB

org.hibernate.dialect.MySQLInnoDBDialect

MySQL with MyISAM

org.hibernate.dialect.MySQLMyISAMDialect

Oracle (any version)

org.hibernate.dialect.OracleDialect

Oracle 9i/10g

org.hibernate.dialect.Oracle9Dialect

Sybase

org.hibernate.dialect.SybaseDialect

Sybase Anywhere

org.hibernate.dialect.SybaseAnywhereDialect

Microsoft SQL Server

org.hibernate.dialect.SQLServerDialect

SAP DB

org.hibernate.dialect.SAPDBDialect

Informix

org.hibernate.dialect.InformixDialect

HypersonicSQL

org.hibernate.dialect.HSQLDialect

Ingres

org.hibernate.dialect.IngresDialect

Progress

org.hibernate.dialect.ProgressDialect

Mckoi SQL

org.hibernate.dialect.MckoiDialect

Interbase

org.hibernate.dialect.InterbaseDialect

Pointbase

org.hibernate.dialect.PointbaseDialect

FrontBase

org.hibernate.dialect.FrontbaseDialect

Firebird

org.hibernate.dialect.FirebirdDialect

跟住繼續講 Student.hbm.xml 這個文件。這個文件是對數據庫的表的映射文件,我們用這個文件指出哪個類對應著哪個表,而且還指出哪個類中的屬性對應著表中的哪個字段。
文件的內容是這樣的:

  1. xml version="1.0"?> 
  2.   PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  3.   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  4.  
  5. <hibernate-mapping> 
  6.  <class name="src.Student" table="student"> 
  7.   <id name="id" column="id"> 
  8.    <generator class="increment"/> 
  9.   id> 
  10.   <property name="name" column="name"/> 
  11.  class> 
  12. hibernate-mapping> 

到此這個文件就結束了。特別說一下這個id 的問題。我們看到文件里面有個 ,這個是什么呢?這個是可以實現自動 id 增加,也就是說如果我們往數據庫中插入一個 name 那么就id自動加1 。

這個文件解釋一下了這個所包含的就是我們前一個文件里面說的mapping。我們在java類中configure得到的mapping就是從這個文件里面讀取出來的。類如果帶包的話一定要帶包名(推薦一切寫的類都要帶包).包名和類名要注意.包名小寫,類名的第一個大寫。我是怕出錯,這里提醒大家一下, 這個就是先指定了類對應的表。然后里面的那些就是指定表中的字段與類中的屬性的對應關系了。


到這里這兩個特殊的文件就介始完了。下面就開始講我們的 java 類了。主要有兩個:一個是Pojo類,一個是我們的Test類。

Pojo類其實就是簡單的一個javaBean。(Plain Old Java Objects, 簡單潔凈Java對象)。看下面的代碼:

  1. package src;  
  2.  
  3.  public class Student{  
  4.  
  5.     private int id;  
  6.     private String name;  
  7.  
  8.     public void setId(int id){  
  9.        this.id=id;  
  10.     }  
  11.  
  12.  
  13.     public void setName(String name){  
  14.        this.name=name;  
  15.     }  
  16.  
  17.     public int getId(){  
  18.      return id;  
  19.     }  
  20.  
  21.     public String getName(){  
  22.      return name;  
  23.     }  
  24.  }  

就是這么簡單的一個類。就是和數據庫的字段對應然后取值的。

下面是我們關鍵的Test類:

  1. package src;  
  2.  
  3. import org.hibernate.*;  
  4. import org.hibernate.cfg.*;  
  5.  
  6. public class Test{  
  7.    public static void main(String bb[]){  
  8.       try{  
  9.          SessionFactory sf=new Configuration().configure().BuildSessionFactory();  
  10.          Session s=sf.opension();  
  11.          Transaction ts=s.beginTransaction();  
  12.          for(int i=0;i<3;i++){  
  13.             Student st=new Student();  
  14.             st.setName("begin go "+ i);  
  15.             s.save(st);  
  16.         }  
  17.          ts.commit();  
  18.          s.close();  
  19.        }catch(Exception e){  
  20.          e.printStackTrace();  
  21.       }  
  22.    }  
  23. }  

這里的第一句 SessionFactory sf=new Configuration().configure().BuildSessionFactory(); 得到configuration的實例.這個開始要和最前面的哪個.cfg.xml對應著看了。

我們取得實例,然后通過configure()讀取mapping對應的.hbm.xml文件的信息。然后我們通過BuildSessionFactory得到SessionFactory對象,然后我們在通過opensession() 建立連接 .Session 就是指一個session被建立。這個需要有servlet的基礎理解,這里等于是一個connection被建立好。

下面通過session對象開啟事務(Transaction)這個相當于conn.setAutoCommit(false);先不遞交最后通過另外一個方法遞交。我們看到下面我們循環里把咱們寫好的Student實例化了。既然實例化了我們就能用里面的方法了。

每次都要session來save一下。一個對象set之后要保存,很好理解吧,保存在了session中。最后遞交commit();  這個方法實際上是實現了兩個作用

  1. conn.commit();    
  2.  conn.setAutoCommit(true);  

這樣才能把我們的數據放進數據庫中。  很奇怪沒有sql語句吧.最后提醒一下.想想hibernate的特性.我們對數據庫的操作就是對對象的操作.這就是OR-Mapping。呵呵,實例分析結束。

【編輯推薦】

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

2009-06-17 09:17:41

Hibernate3

2012-05-17 10:16:00

HibernateJavamerge

2009-06-03 09:11:03

Hibernate工作原理體系結構

2009-06-03 09:16:03

Hibernate工作原理使用

2009-09-27 16:21:22

Hibernate C

2009-09-23 17:05:52

Hibernate S

2009-06-05 11:01:23

struts mvcMVC工作原理

2022-06-08 09:56:46

靜態鏈接Linux命令

2009-06-30 10:33:00

JSP JavaBeaServlet

2010-07-14 15:51:30

Perl 字符匹配

2011-07-11 13:20:13

linuxuniq

2009-09-22 10:09:21

Hibernate S

2009-09-23 10:28:49

使用Hibernate

2009-09-23 15:12:41

Hibernate視圖

2009-09-24 10:06:42

Hibernate實例

2009-09-22 08:39:59

Hibernate F

2009-09-23 17:18:16

Hibernate S

2011-05-23 10:27:09

網絡測試IP承載網

2009-09-28 13:39:01

Hibernate工作

2019-07-18 11:00:45

自動化運維測試
點贊
收藏

51CTO技術棧公眾號

久久精品视频久久| 成人午夜精品久久久久久久蜜臀| 在线观看国产成人| 欧美一区视频| 日韩激情视频在线| 波多结衣在线观看| 97久久人人超碰caoprom| 26uuu久久天堂性欧美| 国产欧美一区二区三区在线 | 亚洲一区中文字幕永久在线| 欧美成人综合| 一区二区欧美亚洲| 一二三区视频在线观看| 国产韩日精品| 亚洲第一在线综合网站| 色阁综合av| 涩涩视频免费看| 激情欧美一区二区| 日韩av免费看| 久久免费播放视频| 羞羞答答成人影院www| 亚洲欧美在线看| 韩国三级在线看| 欧美成人xxxx| 欧美性xxxx| 香港三级日本三级a视频| av播放在线观看| 91免费视频网址| av日韩中文字幕| 伊人22222| 欧美亚洲视频| 国模私拍一区二区三区| 黄色a级片在线观看| 精品国产日韩欧美| 亚洲欧美国产一本综合首页| 亚洲色偷偷色噜噜狠狠99网| 日韩成人18| 欧美日产在线观看| 欧美两根一起进3p做受视频| 日韩精品美女| 亚洲地区一二三色| 成人在线免费观看视频网站| 成人看av片| 亚洲视频图片小说| 中文字幕不卡每日更新1区2区| 国产三级在线免费| 国产欧美一区二区三区鸳鸯浴| 鲁丝片一区二区三区| 日日夜夜精品免费| www.性欧美| 国产精品入口尤物| 国产精品久久久免费看| 久久亚洲成人| 久久深夜福利免费观看| www.97视频| 综合精品久久| 欧美精品videos| 日本一本高清视频| 亚洲高清不卡| 欧美一级视频免费在线观看| 日产精品久久久| 久热精品在线| 国产精品美女在线观看| 黄色一区二区视频| 久久99蜜桃精品| 91麻豆蜜桃| 欧美77777| 91蜜桃免费观看视频| 茄子视频成人在线观看| 国产69久久| 中文字幕日韩av资源站| 4444在线观看| 欧亚av在线| 欧美午夜免费电影| 久久出品必属精品| 99久久免费精品国产72精品九九 | 国产日韩专区在线| 国产精品探花视频| 国产成人免费在线观看| 精品视频一区二区| yourporn在线观看视频| 亚洲女人的天堂| 欧美,日韩,国产在线| 欧美日韩电影免费看| 欧美日韩精品一区二区在线播放 | 久久综合九色综合97婷婷| 日本成人三级电影网站| 欧洲美女少妇精品| 亚洲成av人片在线观看无码| 18禁男女爽爽爽午夜网站免费| 97欧美成人| 欧美va在线播放| 欧洲美一区二区三区亚洲| 久久久久久美女精品| 国模私拍视频一区| 97av免费视频| 久久综合久色欧美综合狠狠| 中文字幕日韩精品久久| 黄色在线网站噜噜噜| 欧美日本一区二区在线观看| 日本三级日本三级日本三级极| 欧美日韩激情| 韩国19禁主播vip福利视频| 波多野结衣视频在线看| 成人久久18免费网站麻豆| 天堂资源在线亚洲视频| 国产不卡123| 欧美一区二区三区免费观看视频| 久久亚洲AV成人无码国产野外| 希岛爱理av一区二区三区| 欧美亚洲在线视频| www.久久伊人| 成人综合影院| 免费看精品久久片| 国产精品国产三级国产专区53 | 成人深夜视频在线观看| 神马影院午夜我不卡| 超碰99在线| 日韩欧美国产小视频| 欧美日韩生活片| 亚洲欧美久久久| 国产欧美日韩综合精品二区| 成人短视频在线观看| 色爱区综合激月婷婷| 亚洲自拍偷拍精品| 国模大胆一区二区三区| 成人精品久久一区二区三区| 成年人视频免费在线观看| 亚洲第一激情av| 日韩成人av影院| 欧美久久一级| 亚洲综合大片69999| 五月婷婷在线视频| 欧美日韩久久不卡| 欧美日韩国产黄色| 热久久一区二区| 日本一区视频在线播放| 成人性生交大片免费网站| 亚洲精品按摩视频| 国产欧美精品在线| 蜜臀精品一区二区三区| 99久久免费精品高清特色大片| 9色porny| 懂色av一区二区| 高清欧美性猛交| 女人18毛片一区二区三区| 亚洲综合久久久久| 高清中文字幕mv的电影| 影音先锋中文字幕一区| 国产精品国产亚洲精品看不卡15| 男女免费观看在线爽爽爽视频| 日韩欧美卡一卡二| 亚洲一区二区91| 成人免费视频视频在线观看免费| 精品一区二区三区无码视频| 北条麻妃一区二区三区在线观看| 欧美激情免费看| 十八禁一区二区三区| 午夜视频在线观看一区二区三区| 日韩精品视频一区二区| 免费视频一区| 亚洲国产欧美日韩| 国产精品视频首页| 久久久久国产视频| 日韩偷拍自拍| 欧美日韩在线直播| 欧美激情一区二区视频| k8久久久一区二区三区| 玩弄japan白嫩少妇hd| 久久国产亚洲| 成人91视频| 都市激情综合| 久久韩剧网电视剧| 免费av网站在线播放| 一本大道av伊人久久综合| 农村老熟妇乱子伦视频| 国产精品夜夜嗨| 国产性xxxx18免费观看视频| 日韩免费在线| 国产日韩欧美亚洲一区| 成人自拍av| 久久69精品久久久久久久电影好| 色婷婷av一区二区三| 欧美午夜免费电影| 韩国美女主播一区| 精品电影在线| 欧美一区永久视频免费观看| 日本一区二区不卡在线| 国产欧美一区在线| 亚洲国产欧美日韩在线| 国产亚洲欧洲| 99re8这里只有精品| 欧美人体视频| 成人做爽爽免费视频| 欧产日产国产精品视频| 日韩在线播放av| 亚洲三级中文字幕| 91麻豆精品国产91久久久更新时间 | 无码播放一区二区三区| 99热在线成人| 狠狠色伊人亚洲综合网站色| 国产激情精品一区二区三区| 国产91成人video| 18视频在线观看| 亚洲天堂第二页| 粉嫩小泬无遮挡久久久久久| 欧美三级一区二区| 日本熟妇毛耸耸xxxxxx| 亚洲人成小说网站色在线| 欧美老熟妇乱大交xxxxx| 国产精品夜夜嗨| 成年网站免费在线观看| 欧美亚洲专区| 国产精品国产亚洲精品看不卡| 国产精品不卡| 色一情一乱一伦一区二区三区丨| 精品av导航| av资源一区二区| 亚洲a成人v| 国产精品免费福利| www.日韩| 91精品国产高清久久久久久| 超碰在线caoporen| www国产91| 阿v免费在线观看| 亚洲乱码一区二区| 手机看片一区二区三区| 精品久久人人做人人爱| 国产内射老熟女aaaa∵| 欧美日韩国产在线播放网站| 天天爽夜夜爽人人爽| 五月天视频一区| 日本一区二区三区免费视频| 一区二区三区国产精品| 91九色丨porny丨极品女神| 国产精品免费视频网站| 成人免费无遮挡无码黄漫视频| 99久久婷婷国产综合精品电影| 无码人妻精品一区二区三区99不卡| 狠狠色丁香婷婷综合| 色综合色综合色综合色综合| 丝袜亚洲另类丝袜在线| www黄色av| 久久久蜜桃一区二区人| 黄色动漫网站入口| 国产亚洲在线观看| 香港三级韩国三级日本三级| 夜夜爽av福利精品导航| 毛片在线视频播放| 国产视频一区欧美| 黄色a级片免费| 日本不卡一二三区黄网| 黄色在线视频网| 老司机一区二区| 亚洲黄色av片| 高清不卡一区二区| www国产视频| 久久久av毛片精品| 国产午夜精品福利视频| 中文字幕在线一区免费| 黄色录像免费观看| 亚洲一区二区三区四区五区黄| 精品少妇一二三区| 日韩欧美中文免费| 精人妻无码一区二区三区| 欧美日韩视频第一区| 国产人妖一区二区三区| 精品乱人伦小说| 精品三级久久久久久久电影聊斋| 亚洲最新av网址| 大地资源网3页在线观看| 欧美激情视频在线| 韩国主播福利视频一区二区三区| 国产精品扒开腿做| 涩涩涩久久久成人精品| 国产午夜精品一区| 精品一区二区三区在线| 热这里只有精品| 亚洲美女一区| 亚洲免费一级视频| 国产不卡视频在线播放| 亚洲自拍偷拍一区二区| 国产精品久久久久久一区二区三区| 爱爱视频免费在线观看| 亚洲va国产va欧美va观看| 人人妻人人爽人人澡人人精品| 3d动漫精品啪啪一区二区竹菊| 高潮一区二区三区乱码| 亚洲性猛交xxxxwww| 成年人网站在线| 秋霞av国产精品一区| 精品国产乱码久久久久久樱花| 国内不卡一区二区三区| 国产精品久久久久久久久久10秀 | 啪啪一区二区三区| 亚洲成精国产精品女| 中文字幕777| 亚洲大胆人体视频| 日韩毛片久久久| 欧美中文字幕在线观看| 免费欧美网站| 视频一区二区三区在线观看| 狠狠噜噜久久| 中文字幕 日韩 欧美| 97久久精品人人澡人人爽| 国产精品白丝喷水在线观看| 日韩欧美中文字幕在线播放| 性生活视频软件| 日韩在线免费高清视频| 中文不卡1区2区3区| 91在线精品观看| 日韩精品dvd| 亚洲熟妇av一区二区三区| 国产成人鲁色资源国产91色综| 男人舔女人下部高潮全视频 | 国产免费a视频| 亚洲国产精品福利| 中文字幕有码在线视频| 国产日韩欧美视频在线| 欧美日本成人| avav在线看| 99精品欧美一区二区蜜桃免费| 99久久婷婷国产综合| 欧美日韩一卡二卡三卡| 黄色免费在线播放| 日本最新高清不卡中文字幕| 久久香蕉精品香蕉| 四虎地址8848| 99久久免费国产| 激情五月少妇a| 欧美日高清视频| 99re热久久这里只有精品34| 欧美中在线观看| 美女一区2区| 亚洲天堂av影院| 国产成人高潮免费观看精品| 999久久久精品一区二区| 伊人婷婷久久| 青青草97国产精品免费观看| 一卡二卡三卡四卡| 欧美成人久久| 天天爱天天操天天干| 久久伊人蜜桃av一区二区| 国产污视频在线看| 亚洲成人久久电影| 国产蜜臀一区二区打屁股调教| 91精品国产一区二区三区动漫| 91精品啪在线观看国产81旧版| 伊人网在线综合| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产三级精品三级在线| 国产精品丝袜91| 伊人色综合久久久| www.久久色.com| 日韩伦理福利| 日本亚洲欧洲色α| 精品在线播放| 日本888xxxx| 国产精品你懂的在线| 国产精品高潮呻吟AV无码| 久久国产精品久久国产精品| 欧美黄视频在线观看| 日韩一级特黄毛片| 粉嫩在线一区二区三区视频| 国产一级淫片免费| 亚洲另类图片色| 六九午夜精品视频| 日韩一二区视频| 成人av高清在线| 香蕉影院在线观看| 夜夜嗨av一区二区三区免费区 | 中国特级黄色片| 香蕉久久一区二区不卡无毒影院| 青青青草原在线| 国产日韩av在线| 亚洲天堂久久| 中文字幕一区二区人妻电影丶| 一本大道av伊人久久综合| 国产激情在线视频| 国内精品二区| 美腿丝袜在线亚洲一区| 九九视频在线免费观看| 精品亚洲aⅴ在线观看| 日韩欧美专区| 激情小视频网站| 国产欧美综合在线观看第十页| 国产福利第一页| 日韩av手机在线看| 亚洲一区二区日韩| 波多野结衣影院| 欧美日韩综合不卡| 黄视频在线免费看| 色综合久久av| 成人a区在线观看| 五月婷婷丁香在线| 久久久久国色av免费观看性色| 精品国产一区二区三区久久久樱花| 两性午夜免费视频| 在线视频你懂得一区| 国产第一页在线视频|