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

正文內(nèi)容

jpa開發(fā)文檔-wenkub

2022-09-05 23:30:15 本頁面
 

【正文】 主要組件和相互關(guān)系JPA 基于非侵入式原則設(shè)計(jì),因此可以很容易的和其它框架或者容器集成。JPA 標(biāo)準(zhǔn)制定過程中充分吸收了目前已經(jīng)出現(xiàn)的所有持久化技術(shù)的所有優(yōu)點(diǎn),摒棄了它們存在的局限,使 JPA 在簡(jiǎn)單易用、查詢能力等方面表現(xiàn)突出。 Java 數(shù)據(jù)對(duì)象(Java Data Object,JDO)JDO 是 Java EE 標(biāo)準(zhǔn)中另外一個(gè)支持管理持久化數(shù)據(jù)的規(guī)范,JDO 規(guī)范使用和 JPA 非常類似的 API,只是通常是通過 JCA 技術(shù)集成到應(yīng)用服務(wù)器上。JDBC支持處理大量的數(shù)據(jù),能夠保證數(shù)據(jù)的一致性,支持信息的并發(fā)訪問,提供 SQL 查詢語言查找數(shù)據(jù)。JDBC 所使用的關(guān)系模型不是為保存對(duì)象而設(shè)計(jì)的,因此迫使開發(fā)者選擇在處理持久數(shù)據(jù)時(shí)放棄面向?qū)ο缶幊?,或者自己去開發(fā)將面向?qū)ο筇匦裕ū热纾侯愔g的繼承)和關(guān)系型數(shù)據(jù)庫進(jìn)行映射的專有解決方案。但是 JDO 是針對(duì)輕量級(jí)容器而設(shè)計(jì)的,不能夠支持容器級(jí)別的聲明式安全、事務(wù)特性,也無法對(duì)遠(yuǎn)程方法調(diào)用提供支持。標(biāo)準(zhǔn)化JPA 是 JCP 組織發(fā)布的 Java EE 標(biāo)準(zhǔn)之一,因此任何聲稱符合 JPA 標(biāo)準(zhǔn)的框架都遵循同樣的架構(gòu),提供相同的訪問 API,這保證了基于 JPA 開發(fā)的企業(yè)應(yīng)用能夠經(jīng)過少量的修改就能夠在不同的 JPA 框架下運(yùn)行??涉敲?JDBC 的查詢能力JPA 定義了獨(dú)特的 JPQL(Java Persistence Query Language),JPQL 是 EJB QL 的一種擴(kuò)展,它是針對(duì)實(shí)體的一種查詢語言,操作對(duì)象是實(shí)體,而不是關(guān)系數(shù)據(jù)庫的表,而且能夠支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能夠提供的高級(jí)查詢特性,甚至還能夠支持子查詢。 EntityManagerFactory EntityManagerFactory 是 EntityManager 的工廠類,負(fù)責(zé)創(chuàng)建 EntityManager 對(duì)象。在容器外使用時(shí),EntityManagerFactory 和 EntityManager 之間是一對(duì)一的關(guān)系。 Persistence Persistence 是一個(gè)工具類,負(fù)責(zé)根據(jù)配置文件提供的參數(shù)創(chuàng)建 EntityManagerFactory 對(duì)象。// 實(shí)體的更新需要在事務(wù)中運(yùn)行EntityTransaction tx = ()。)。} // 提交事務(wù)(持久化所有更新) ()。清單 2 在容器中運(yùn)行的 JPA 例子/** 在容器中運(yùn)行 JPA 應(yīng)用時(shí),EntityManager 接口的實(shí)例”em”* 是通過 Resource 注釋注入的。)。}3. Entity BeanEJB3 Entity可以是很簡(jiǎn)單的java bean,只要批注了Entity或者在xml配置中作了說明,就被做一個(gè)可持久化的Entity處理。 如果在應(yīng)用中需要將該Entity類分離出來在分布式環(huán)境中作為參數(shù)傳遞,該Entity 。 abstract類和Concrete實(shí)體類都可以作為Entity類。在絕大部分的商業(yè)應(yīng)用,開發(fā)人員都可以忽略這部分無需關(guān)心。但有些情況下,我們還是需要在Entity類的setter/getter方法中包含商業(yè)邏輯。 規(guī)范中access方式還有多一層含義。 /** * The entity class must have a noarg constructor. */ public HelloEntityBean() { } public int getId() { return id。/** * The entity class must have a noarg constructor.*/public HelloEntityBean() {}Id(generate=)public int getId() { return id。 Byte[] Entity類 使用簡(jiǎn)單主鍵,我們只需要用Id元數(shù)據(jù)對(duì)一個(gè)屬性變量或者她的getter方法進(jìn)行批注。 復(fù)合主鍵類必須是public和具備一個(gè)沒有參數(shù)的constructor 復(fù)合主鍵類中的主鍵屬性變量的名字必須和對(duì)應(yīng)的Entity中主鍵屬性變量的名字相同 Id private String lastName。 } public void setFirstName(String firstName) { = firstName。EntityManager,顧名思義是管理所有EJB 3運(yùn)行環(huán)境中的所有Entity。 // 獲得默認(rèn)當(dāng)前的EntityManagerFactory final EntityManagerFactory emf = ()。 , 分離的實(shí)體(detached)。Entity被remove()方法刪除,對(duì)應(yīng)的紀(jì)錄將會(huì)在當(dāng)前事務(wù)提交的時(shí)候從數(shù)據(jù)庫中刪除。 final HelloEntityBean hello = new HelloEntityBean( 1, foo )。 // 這時(shí)hello的狀態(tài)變?yōu)閙anaged ()。 下面我們來看看不同的cascade屬性的區(qū)別。 = name。 ().begin。 // 由于OneToOne關(guān)系中沒有配置casacade屬性,father 關(guān)聯(lián)的mySon不會(huì)被自動(dòng)保存,需要分別保存 ( mySon )。 // OneToOne配置cascade=,配置cascade=。 = name。 Son mySon = new Son()。 ().mit()。 Father father = ( , new Integer( 1 ) )。 更新Entity對(duì)Entity的更新必須在事物內(nèi)完成。 // 更新原始數(shù)據(jù)類型 ( newName )。 刪除Entity對(duì)Entity的刪除必須在事物內(nèi)完成。 // 把cascade屬性設(shè)為cascade=。在脫離EJB3 Persistence Runtime(EntityManager)的管理后,我們?nèi)匀豢梢宰x取或者修改Entity中的內(nèi)容。 // 當(dāng)entityManger關(guān)閉的時(shí)候,當(dāng)前被entityManager管理的Entity都會(huì)自動(dòng)的脫離EntityManager,狀態(tài)轉(zhuǎn)變?yōu)閐etached ()。 ( father )。它可以被編譯成不同的底層數(shù)據(jù)庫能接受的SQL,從而屏蔽不同數(shù)據(jù)庫的差異,確保用JPQL查詢語言編寫的代碼可在不同的數(shù)據(jù)庫上運(yùn)行。進(jìn)行查詢,首先要通過EntityManager 獲得Query對(duì)象。 final List result = ()。查詢Entity在JPQL中都是針對(duì)Entity的Abstract Schema Type進(jìn)行查詢。這樣下次同樣的查詢操作就無需訪問數(shù)據(jù)庫,而直接從緩存中返回結(jié)果集合。 // 假設(shè)返回的結(jié)果數(shù)量巨大 final Query query = ( select o from Order o)。 // 這里我們可以處理海量的數(shù)據(jù) while( () ){ // 處理Order } 簡(jiǎn)單查詢下面是一個(gè)簡(jiǎn)單查詢的例子,可以看到和SQL的使用方法很類似。 )。 // address是Order類上的一個(gè)對(duì)象變量屬性,Address有一個(gè)streetNumber的屬性final Query query = ( select o from Order o where = 123 )。在同一個(gè)查詢中只允許使用一種參數(shù)定義方式。 // 設(shè)置查詢中的參數(shù) ( myId, 2 )。// 1表示第一個(gè)參數(shù),2是參數(shù)的值 //或者 final Query query = ( select o from Order o where = ?1).setParameter( 1, 2 )。 如果在未來需要在不同的EJB3 運(yùn)行環(huán)境中運(yùn)行,請(qǐng)使用位置參數(shù),保證應(yīng)用是可移植的。 final Query query = ( select o from Order o order by desc)。在一些Entity中屬性特別多的情況,這樣的查詢可以提高性能。 // 數(shù)組中的第一個(gè)值是id int id = ( row[
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1