freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

hibernate持久化技術在網(wǎng)上購書系統(tǒng)中的設計與實現(xiàn)畢業(yè)論文(編輯修改稿)

2025-07-25 08:05 本頁面
 

【文章內容簡介】 Hibernate簡單的說,就是和數(shù)據(jù)庫建立會話,然后和數(shù)據(jù)庫進行交互的一種框架。它的定義是Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫[1]。Hibernate的使用場合是可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數(shù)據(jù)持久化的重任。對于為什么要使用Hibernate?主要有以下幾點:l Hibernate支持了企業(yè)級開發(fā)中數(shù)據(jù)對象的持久化。l 它是輕量級模型,占用資源小。l 它能夠讓開發(fā)人員從繁瑣的SQL語言中解脫出來,減輕開發(fā)人員的負擔。l Hibernate是J2EE標準中的一部分,它的架構已經被融進現(xiàn)代開發(fā)中,并且得到了廣泛的應用和實踐。所以從市場份額來說,它有著非常大的優(yōu)勢。l 最后一點就是,Hibernate是開源框架,并且有專門的維護人員進行維護和更新,所以在未來的發(fā)展中,Hibernate的價值將會被不斷地擴大。 Hibernate的主要內容 Hibernate的框架如Hibernate的定義一樣,Hibernate是一個ORM(對象關系映射)框架。在這個框架中,用三個部分:關系數(shù)據(jù)庫、映射文件(.xml)、實體(類似JavaBean結構的對象),通過映射文件,關系數(shù)據(jù)庫中的數(shù)據(jù)可以和實體進行交互,實體數(shù)據(jù)通過映射文件將數(shù)據(jù)存入數(shù)據(jù)庫,從而實現(xiàn)數(shù)據(jù)的持久化。通過以上可以看出,Hibernate的操作對象是Entity對象,而不是直接的數(shù)據(jù)。 ORM結構圖 Hibernate的工作原理Hibernate實現(xiàn)ORM映射,必須完成兩個配置文件:,這個是Hibernate中的主配置文件;,它里面記錄了關系數(shù)據(jù)庫中的哪個表應該和哪個實體進行映射,為了使整個文件能夠工作。下面我將詳細介紹下這兩個配置文件中的主要屬性。 它是Hibernate中的核心文件,由于Hibernate是JDBC的輕量級封裝。所以Hibernate的在底層實現(xiàn)過程中使用了JDBC中的API。,正是配置了相關JDBC的配置。內容如下: hibernateconfigurationsessionfactory ①property name= /property ② property name= /property ③ property name=/property ④property name=/property ⑤ property name=/property ⑥property name=dialect/property ⑦ mapping resource=… / ……/sessionfactory/hibernateconfiguration①是表示連接的數(shù)據(jù)庫名。②是表示訪問數(shù)據(jù)庫的用戶名。③是表示訪問數(shù)據(jù)庫的密碼。④是表示JDBC連接數(shù)據(jù)庫的協(xié)議方式,不同的數(shù)據(jù)庫使用的協(xié)議不一樣,例如MySQL的協(xié)議方式為:jdbc:mysql://主機名:端口號(一般為3306)//數(shù)據(jù)庫名。⑤是表示訪問數(shù)據(jù)庫所使用的JDBC驅動。JDBC驅動是Java程序訪問數(shù)據(jù)庫的接口驅動程序。Java程序通過JDBC驅動提供的接口進行數(shù)據(jù)庫的訪問操作。⑥是表示Hibernate所使用的方言。Hibernate使用方言可以實現(xiàn)數(shù)據(jù)庫的跨平臺操作。⑦。實現(xiàn)了數(shù)據(jù)庫的會話設置,跨平臺操作設置以及映射的注冊。 ,它的主要屬性如下:hibernatemapping①class name= table= ” catalog= ②id name= type= ③column name= / ④generator class= //id⑤property name= type= ⑥column name= /column /property⑦manytoone name=”” class= column name= /column /manytoone ⑧set name= key column name= /column /key onetomany class= / /set/class/hibernatemapping①中name中是設置映射的實體名稱,table表示映射的數(shù)據(jù)庫中的表明,catalog表示映射的數(shù)據(jù)庫名。②中name表示實體中主鍵屬性的名字,type表示數(shù)據(jù)類型。③中name表示數(shù)據(jù)庫表中所對應的主鍵屬性名。④中class表示所采用生成主鍵的生成器,比如有native為自動生成,assigned為手動生成。⑤中name表示實體中屬性的名字,type表示數(shù)據(jù)類型。⑥中name表示數(shù)據(jù)庫表中所對應的屬性名,type表示數(shù)據(jù)類型。⑦和⑧中manytoone、onetomany都是Hibernate中最常用的用來表示表之間關系的內容。class是指對應的表的實體的對象名,set是數(shù)據(jù)結構是用來表示一對多的映射。key之間的屬性是表示表之間對應的屬性。 Hibernate的核心接口Hibernate的核心接口一共有六個,分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。這6個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。各個接口在框架中有不同的作用,不同的位置。 Hibernate核心接口結構圖下面對這六個核心接口分別加以介紹。Session接口:Session接口負責執(zhí)行被持久化對象的CRUD操作(CRUD的任務是完成與數(shù)據(jù)庫的交流,包含了很多常見的 SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應用中的 HttpSession。這里當使用session這個術語時,其實指的是Hibernate中的session,而以后會將HttpSesion對象稱 為用戶session。SessionFactory接口:SessionFactroy接口負責初始化Hibernate。它充當數(shù)據(jù)存儲源的代理,并負責創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個 SessionFactory。Configuration接口:Configuration接口負責配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對象。Transaction接口:Transaction接口負責事務相關的操作。它是可選的,開發(fā)人員也可以設計編寫自己的底層事務處理代碼。Query和Criteria接口:Query和Criteria接口負責執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語言或SQL語句兩種表達方式。 Hibernate API中的主要部分在Hibernate API中最主要的部分是用來實現(xiàn)增、刪、查、改。相對于JDBC對于數(shù)據(jù)的操作,Hibernate里是主要是對于對象進行操作。下面將具體介紹下增、刪、查、改中所使用的方法。1) 增:save(Entity),將封裝有數(shù)據(jù)的實體插入到數(shù)據(jù)庫中。2) 刪:delete(Entity),將數(shù)據(jù)庫中與Entity中封裝數(shù)據(jù)相同數(shù)據(jù)刪除。3) 改:update(Entity),用封裝有數(shù)據(jù)的實體來更新數(shù)據(jù)庫中的數(shù)據(jù)。4) 查:Criteria和Query,是都能夠用于進行查詢,但是Criteria是利用對象進行查詢;而Query是利用hql(類似于sql語句,是Hibernate中獨有的關系數(shù)據(jù)庫語言)語句進行查詢。 Hibernate的優(yōu)勢和劣勢Hibernate作為JDBC的非常輕量級封裝,相對于JDBC,它有諸多優(yōu)勢,例如:Hibernate能夠減少大量的sql語句的代碼編寫,減輕了開發(fā)人員的任務量;同時Hibernate是是一個輕量級封裝,所以它占用的空間、內存是非常小的。相對于優(yōu)勢,Hibernate也有劣勢,Hibernate不適合要直接處理大量數(shù)據(jù)的系統(tǒng),而JDBC卻能夠符合這樣的條件。 本章小結本章詳細的介紹了Hibernate,Hibernate主要是對于實體對象的操作,在Hibernate中有大量的API供開發(fā)人員使用。同時相對于JDBC而言,它有優(yōu)勢,也有劣勢。在下一章,將介紹網(wǎng)上購書網(wǎng)站的數(shù)據(jù)庫設計。 第4章 數(shù)據(jù)庫設計4 本章內容介紹在本章中將會涉及到以下內容:l 數(shù)據(jù)庫需求分析,從基本設計角度來分析數(shù)據(jù)庫中表的確定。l 數(shù)據(jù)庫詳細設計,將會從數(shù)據(jù)庫中表的角度介紹網(wǎng)上購書網(wǎng)站數(shù)據(jù)庫表中的詳細內容。 數(shù)據(jù)庫需求分析由于網(wǎng)上購書網(wǎng)站是一個B/C系統(tǒng),所以在數(shù)據(jù)庫的需求方面,需要為用戶、管理員、書籍建立表。同時對于每本書,用戶可以進行評論,用戶也可以進行購買圖書,所以在系統(tǒng)的數(shù)據(jù)庫中必須為評論和訂單必須建立表。同時書籍有種類,所以必須建立書籍種類表。對于網(wǎng)上購書系統(tǒng)還有管理員,所以為管理員必須建立一個表。同時對于用戶的一些信息,例如工作、城市、省份這些信息都是現(xiàn)有的信息,所以需要建立單獨的表。這樣就能夠減少數(shù)據(jù)庫中數(shù)據(jù)的冗余。所以總結上述原因,可以初步得出以下表:表單表單名稱USER用戶表COMMENT評論表BOOK書籍信息表BOOK_CATEGORY書籍類型表ORDERINFOR訂單表JOB工作信息表CITY城市信息表PROVINCE省份表ADMIN管理員表 數(shù)據(jù)庫詳細設計通過數(shù)據(jù)庫的需求,可以的得出相關表,但是這些還不夠,還要設計出表的屬性,以及彼此之間的關系。(由于空間有限,附錄中給出了一張清晰的視圖)圖 數(shù)據(jù)庫視圖下面是各個表的詳細內容:: Admin表屬性名類型長度是否為null主鍵外鍵ADMIN_IDint4否是否ADMIN_NAMEvarchar40否否否PASSWORDvarchar32否否否EMAILvarchar40否否否CREATE_TIMEdatetime0否否否ADMIN_TYPEint1否否否STATUSint1否否否: BOOK表屬性名類型長度是否為null主鍵外鍵CATEGORY_IDint4否否是BOOK_ID940否是否AUTHORVarchar40否否否PUBLISHERvarchar50否否否PUBLISH_DATEdate0是否否VERSIONint3是否否ISBNvarchar13否否否PAGEint5是否否PRICEfloat5否否否DISCOUNTfloat5是否否IMAGEvarchar225是否否BOOK_NUMint9否否否ADDTIMEdatetime0否否否DESCRIBTIONvarchar225是否否BOOK_NAMEvarchar50否否否: BOOK_CATEGORY表屬性名類型長度是否為null主鍵外鍵CATEGORY_IDint4否是否CATEGORY_NAMEvarchar20否否否PARENT_CATEGORYint4是否否LEVELint1否否否: CITY表屬性名類型長度是否為null主鍵外鍵CITY_IDint4是是否DESC_CHvarchar60是否否DESC_ENvarchar60否否否ABBR_CHvarchar40是否否ABBR_ENvarchar40是否否PROVINCE_IDint4否否是STATUSint1是否否: COMMENT表屬性名類型長度是否為null主鍵外鍵COMMENT_IDint4否是否BOOK_IDint9否否是USER_IDint9否否是CONTENTvarchar225否否否TIMEdatetime0否否否: JOB表屬性名類型長度是否為null主鍵外鍵JOB_ID
點擊復制文檔內容
語文相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1