好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Java開源項目Hibernate

Java開源項目Hibernate

熱門標簽:怎樣把地圖標注出來 黃石智能營銷電銷機器人效果 電話機器人的特色和創新 騰訊地圖標注商戶改名注冊入駐 商丘百應電話機器人有沒有效果 地圖標注人員兼職 開封便宜外呼系統報價 漯河辦理400電話 淮南騰訊地圖標注
  一)Hibernate意義

  在一個真正的OOAD中,我們的設計首先是做UML建摸,最終將一個系統涉及所有對象(這個東西不是東西那么簡單)用類圖來體現一個完整的設計,我們最后可能得到這幾種類:控制業務邏輯的類,保存業務數據的類module(bean類),輔助類或者更多(具體問題具體分析,但是將業務所需數據歸結為一個類module更適合分層)。到數據庫低層實現的時候,

  為了獲取數據或者存儲數據,你不得不為此加上一個操作數據庫的控制邏輯,到此,你完美的設計估計會為此付出巨大的努力,因為你看到的業務數據層是一個復雜的模塊,即使從面向對象觀點來看,我們UML類圖中的,業務數據層只是一個數據模塊。Hibernate已經幫我們解決了業務數據層這個本來十分復雜的模塊的底層實現,現在,我們只要在外層裹上我們的代表數據的類即可。

  二)對象模型與關系數據庫模型差異

  在寫出我初探Hibernate的感受之前,我覺得寫下這一節還是很有必要的。帶著問題研究遠遠比帶著好奇研究要意義深遠得多。

  問題領域:

  關系型數據庫是存儲數據的最好選擇,但是隨著OO技術日益發展,在persisitent層上關系型數據庫的設計體系與OO體系格格不入,可以想象,當滿腦子充斥著OOAD的你想到怎么隔離滿天飛的SQL語句時,那是多么痛苦的表情。無論你的業務層設計多么完美,在真正儲存數據或者加載數據時,你面對的無非是一大堆封裝好的數據,這些數據在JDBC中已經完全失去對象(這里的對象稱之為業務對象或許更為確切)的意義,你整體的OOAD到此為止。為什么會造成這種情況呢?原因是對象模型與關系數據庫模型根本設計體系之間的差別。

  對象模型與關系數據庫模型各自理論出發點是不同的:對象模型的理論體系可以簡單歸結為這兩點:

  1) 以對象看待世界。

  2) 對象間關系(繼承,關聯,聚合,組合)維系著整體構成。

  而關系數據庫模型唯一出發點是有效儲存數據,KEY是數據庫的關鍵技術,關系在這里只是各個數據表的KEY之間的關聯,這種關聯我覺得應該稱之為數據的關聯,其表達的意義遠遠沒有對象之間的關聯那么深廣。

  那么,我現在最關心的問題是hibernate是怎么利用關系數據庫的數據表KEY關聯來表達對象之間的關系呢?

  在進入正式研究Hbernate之前,我們可以思索一下問題的似乎簡單與似乎十分復雜的矛盾。

  我們設計的代表數據層的所有類必須完美的體現在數據表之中。可以這樣總結:

  class-àtable

  class1—(關系)---class2------〉table1---(關系)-----table2

  問題的解決似乎很簡單,特別是對于javabean構架,更是簡單(看起來簡單而已!!!)。

  想象一個簡單的javabean類:

  public class SimpleBean{
  protected int id;
  protected String name;
  public int getId(){
  return id;
  }
  public void setId(int id){
  this.id=id;
  }
  public String getName(){
  return name;
  }
  public void setName(String name){
  this,name=name;
  }
  }

  我們完全可以這樣進行name映射:

  className-àtableName

  propertyNameàcolumnName

  一個類實例就是table的一行。這個問題很簡單的得到解決。

  再進一步,考慮如下簡單的一對一類關聯:

  public class Class1{
  public Class2 class2;
  public Class2 getclass2()…
  public void setClass2(Class2 class2)…
  }
  public class Class2{
  public Class1 class1;
  public Class1 getClass1()...
  ...
  }

  這種關系很顯然是雙向的,可以從class1中得到class2,反過來,也可以從class2中得到class1,那么體現到數據表中呢?首先可以肯定class1àtable1,class2àtable2;很顯然,table1和table2都要互相增加多一列來保存對方的key。

  這些簡單的關系在數據庫表的關聯中得到了很好的支持,但是稍微復雜一點的呢?

  諸如以下一個類:

  public class S {
  ArrayList datas;
  Public List getDatas()..
  Public void setDatas(List datas)..
  ….
  }

  這里如果簡單用上面所分析的propertyname-àColumnName顯然不可以,這種集合作為bean屬性我們該怎么在數據表中得到很好體現呢?如果這些集合只是簡單的String 集合,它在數據庫表里面是怎么表述的呢?如果這些集合是保存某些類實例的,似乎可以轉換為數據庫表的一對多的關系?

  另外一方面,繼承體系是怎么在數據塊表里面得到體現的呢?繼承的關系怎么用數據庫的關聯關系表達呢?繼承所涉及的動態類識別怎么在數據庫中得到體現呢?

  再往深處想一想,對于一個操作:

  public class BookStore{
  Set books;
  Public Set getBoos()..
  Public void setBooks(Set boos)…
  Public void addBook(Book book)…
  public class Book{
  public BookStore bookStore;
  public Parent getBookStore()..
  ..
  }

  在業務邏輯中,我們會這樣寫代碼:

  Book book=new Book();
  .bookStore.addBooks(book);

  上面兩行代碼便已經清楚地建立了child與parent之間的關系,相對來說,數據庫中的數據也應該根據這幾行代碼建立產生數據并建立這種關聯。此時內存中的數據怎么跟數據庫中的數據一致呢?
您可能感興趣的文章:
  • 淺析java程序中hibernate的應用總結
  • java優化hibernate性能的幾點建議
  • java Hibernate延遲加載
  • JAVA+Hibernate 無限級分類
  • java Hibernate 一對多自身關聯問題
  • java模擬hibernate一級緩存示例分享

標簽:大興安嶺 拉薩 鄭州 武威 亳州 紅河 岳陽 馬鞍山

巨人網絡通訊聲明:本文標題《Java開源項目Hibernate》,本文關鍵詞  Java,開源,項目,Hibernate,Java,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Java開源項目Hibernate》相關的同類信息!
  • 本頁收集關于Java開源項目Hibernate的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 男无遮挡吃奶gift动态图| 久久青青草原精品国产软件| 亚洲精品国产网红在线| 顶级欧美做受xxx000大乳| 被几个男摁着强进了NP| 《甜性涩爱》完整版在线播放 | 亚洲中文无码亚洲人成人三区| 国产精品视频一区二区三区小说| 安那情欲史| 韩国理论三级在线观看视频| 成人亚洲国产综合精品91| 我的室友香蕉ktv全文| 精品人妻一区二区三区四区中文字幕 | 两女互摸喷水小说| 欧美极品少妇XXXXX亚洲精品| 操女生漫画| 国产精品视频网站| 揉胸摸下面视频| 麻豆影视的经典视频| 把她日出水了好紧大爽了视频| 蹂躏亲女蹂躏亲女稚嫩的身体| l看真人视频一级毛片| 三级视频在线观看| 男子操女子| 莫菁被躁120分钟视频| 91香蕉综合一区二区三区| 同人文肉| 羞羞漫画窗口| 国产又粗又猛又爽又黄的学生视频 | 亚洲视频一区在线| 国产精品粉嫩无套内谢| 人人妻人人澡人人爽人人爽欧美| 国产乱码精品一区二区三区的特点分析 | 轻一点小说| 午夜色少妇色中文字幕| wwwwxxxx国产| 无码成人性爽xo视频在线观看| 激情 小说 亚洲 图片 伦| ass亚洲女人丰满pics| ijzzijzzijzzijzz在线播放| 奶瘾 骨科|