(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句子履行恳求,运转功率较低。
原文:http://8917152.blog.51cto.com/8907152/1426660