java持久層框架有哪些
2023-06-12 17:35:01 閱讀(235)
jpa是什么?
JPA是Java Persistence API的簡(jiǎn)稱(chēng), 中文名為Java持久層API; 是JDK 5.0注解或XML描述對(duì)象-關(guān)系表的映射關(guān)系, 并將運(yùn)行期的實(shí)體對(duì)象持久化到數(shù)據(jù)庫(kù)中。 JPA包括以下3方面的內(nèi)容: 1) 一套API標(biāo)準(zhǔn)。 在javax.persistence的包下面, 用來(lái)操作實(shí)體對(duì)象, 執(zhí)行CRUD操作, 框架在后臺(tái)替代我們完成所有的事情, 開(kāi)發(fā)者從煩瑣的JDBC和SQL代碼中解脫出來(lái)。 2) 面向?qū)ο蟮牟樵冋Z(yǔ)言: Java Persistence Query Language(JPQL) 。 這是持久化操作中很重要的一個(gè)方面, 通過(guò)面向?qū)ο蠖敲嫦驍?shù)據(jù)庫(kù)的查詢語(yǔ)言查詢數(shù)據(jù), 避免程序的SQL語(yǔ)句緊密耦合。 3) ORM(object/relational metadata) 元數(shù)據(jù)的映射。 JPA支持XML和JDK5.0注解兩種元數(shù)據(jù)的形式, 元數(shù)據(jù)描述對(duì)象和表之間的映射關(guān)系, 框架據(jù)此將實(shí)體對(duì)象持久化到數(shù)據(jù)庫(kù)表中。 總的來(lái)說(shuō): jpa是用于對(duì)象持久化的API; 是jave EE5.0平臺(tái)的標(biāo)準(zhǔn)ORM規(guī)范,其作用是使得應(yīng)用程序以統(tǒng)一的方式來(lái)訪問(wèn)持久層; 目前主要使用的jap實(shí)現(xiàn)是hibernate;
jpa和mybatis項(xiàng)目的區(qū)別?
區(qū)別主要有以下幾點(diǎn) 1、 jpa和mybatis的反映對(duì)象不同 GPA是java persistence api的縮寫(xiě),它的中文翻譯就是指程序JAVA持久層API,Mybatis相對(duì)來(lái)說(shuō)比較實(shí)用的持久層框架。首先,兩者最大的不同就在于內(nèi)部的反應(yīng)對(duì)象,JPA的操作是在對(duì)象與對(duì)象之間的反射,而mybatis的處理對(duì)象是在對(duì)象和結(jié)果集合之間的反射。雖然其最終的持久層框架結(jié)果是一樣的,但是卻在操作過(guò)程中有千差萬(wàn)別。 2. jpa和mybatis的功能性質(zhì)不同 從整體的移植性來(lái)看,GPA的一致性相對(duì)較好,他在數(shù)據(jù)庫(kù)的兼容性基本都是相同的,所以不用擔(dān)心其他問(wèn)題。一般來(lái)說(shuō)springdatajpa都知道當(dāng)一個(gè)接口繼承了GPA,接口之后便會(huì)自動(dòng)具備數(shù)據(jù)移植的良好性質(zhì)。由于mybatis是使用SQL語(yǔ)句,所以在移植時(shí)必須將數(shù)據(jù)庫(kù)的類(lèi)型改為sql了。從這一點(diǎn)上來(lái)看,GPA更具優(yōu)勢(shì),其次在操作層面修改字段的時(shí)候,mybatis也相對(duì)操作步驟比較多。 3. jpa和mybatis操作流程不同 如果是學(xué)習(xí)操作持久層的話,用hibernate會(huì)比較麻煩,所以從具體學(xué)習(xí)操作來(lái)看,mybatis具有更強(qiáng)烈的優(yōu)勢(shì),同時(shí)也可以使用springdatajpa,但是這一種方式更適合于單表。但在這里可以發(fā)現(xiàn)這一篇a的妥協(xié)性,為了支持這一特性,但在實(shí)際操作起來(lái),并不推薦薦使用,因?yàn)檫@種操作方式并不符合領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的目標(biāo)和理念。
spring持久層組件有哪些?
spring持久層組件主要有三類(lèi),分別 1.jdbc JdbcTemplate 2.Hibernate (JPA) HibernateTemplate 3.Mybatis SqlSessionFactoryBean、MapperScannerConfiger
未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明出處