(1)、JPA介紹:
JPA全稱為Java Persistence API ,Java耐久化API是Sun公司在Java EE 5标準中提出的Java耐久化接口。JPA吸取了目前Java耐久化技能的長處,旨在标準、簡化Java目标的耐久化作業。運用JPA耐久化目标,并不是依賴于某一個ORM結構。
為何要運用JAP?
在說為何要運用JPA之前,咱們有必要了解為何要運用ORM技能。
ORM 是Object-Relation-Mapping,即目标聯系暗射技能,是目标耐久化的中心。ORM是對JDBC的封裝,然後處理了JDBC的各種存在疑問:
a) 繁瑣的代碼疑問
用JDBC的API程式設計拜訪資料庫,代碼量較大,特别是拜訪字段較多的表的時分,代碼顯得繁瑣、累贅,簡單犯錯。例如:PreparedStatement pstmt=con.prepareStatment("insert into account value(?,?,?,?,?,?,?,?,?)");
ORM則樹立了Java目标與資料庫目标之間的暗射聯系,程式員不需求編寫雜亂的SQL句子,直接操作Java目标即可,然後大大降低了代碼量,也使程式員更加專心于事務邏輯的完成。
b) 資料庫目标連接配接疑問
聯系資料目标之間,存在各種聯系,包含1對1、1對多、多對1、多對多、級聯等。在資料庫目标更新的時分,選用JDBC程式設計,有必要非常當心處理這些聯系,以確定保持這些聯系不會呈現過錯,而這個程序是一個很費時吃力的程序。
ORM樹立Java目标與資料庫目标聯系暗射的同時,也主動依據資料庫目标之間的聯系創立Java目标的聯系,并且提供了保持這些聯系完好、有用的機制。
c) 系統架構疑問
JDBC歸于資料拜訪層,可是運用JDBC程式設計時,有必要曉得背景是用啥資料庫、有哪些表、各個表有有哪些字段、各個字段的類型是啥、表與表之間啥聯系、創立了啥索引等等與背景資料庫有關的詳細資訊。
運用ORM技能,可以将資料庫層完全隐蔽,呈獻給程式員的隻要Java的目标,程式員隻需求依據事務邏輯的需求調用Java目标的Getter和 Setter辦法,即可完成對背景資料庫的操作,程式員不用曉得背景選用啥資料庫、有哪些表、有啥字段、表與表之間有啥聯系。
d) 功能疑問
選用JDBC程式設計,在很多時分存在功率低下的疑問。
pstmt =conn.prepareStatement("insert into user_info values(?,?)");
for (int i=0; i<1000; i++) {
pstmt.setInt(1,i);
pstmt.setString(2,"User"+i.toString());
pstmt.executeUpdate();
}
以上程式将向背景資料庫發送1000次SQL句子履行懇求,運轉功率較低。