JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合ORM技术,结束现在Hibernate、TopLink等ORM框架各自为营的局面。值得注意的是,JPA是在充分吸收了现有Hibernate、TopLink等ORM框架的基础上发展而来的,具有易于使用、伸缩性强等优点。
JPA不是一种新的ORM框架,他的出现只是用于规范现有的ORM技术,他不能取代现有的Hibernate、TopLink等ORM框架。相反,在采用JPA开发时,我们仍将使用到这些ORM框架,只是此时开发出来的应用不再依赖于某个持久化提供商。应用可以在不修改代码的情况下在任何JPA环境下运行,真正做到低耦合,可扩展的程序设计。
开发jpa依赖的包:
Hiberante核心包(8个文件)
hibernate-distribution-3.3.1.GA
---------------------------------------------
hibernate3.jar
lib\bytecode\cglib\hibernate-cglib-repack-2.1_3.jar
lib\required\*.jar
Hiberante注解包(3个文件):hibernate-annotations-3.4.0.GA
------------------------------------------------------------------------------------
hibernate-annotations.jar
lib\ejb3-persistence.jar、hibernate-commons-annotations.jar
Hibernate针对JPA的实现包(3个文件):hibernate-entitymanager-3.4.0.GA
------------------------------------------------------------------------------------------------------
hibernate-entitymanager.jar
lib\test\log4j.jar、slf4j-log4j12.jar
配置文件:persistence.xml
JPA规范要求在类路径的META-INF目录下放置persistence.xml,文件的名称是固定的,配置模版如下:
<?xml version="1.0"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="wangjie" transaction-type="RESOURCE_LOCAL"><!--使用本地事务 -->
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="root"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/wangjie?useUnicode=true&characterEncoding=UTF-8"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>
调用方法和hibernate的类似:
Persistence为sun的接口,这些框架只是实现了sun的接口规范而已。
EntityManagerFactory factory = Persistence.createEntityManagerFactory("wangjie");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
em.persist();//保存
em.merge()//更新
em.refresh()//刷新
em.remove()//删除
em.getTransaction().commit();
em.close();
factory.close();
下面是JPA使用toplink框架
1、导包:toplink-essentials.jar toplink-essentials-agent.jar 两个包 当然还要导入数据库的包
2、改persistence.xml 文件
<?xml version="1.0"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="wangjie" transaction-type="RESOURCE_LOCAL">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<class>cn.itcast.bean.AirLine</class>
<class>cn.itcast.bean.AirLinePK</class>
<properties>
<property name="toplink.logging.level" value="FINE"/>
<property name="toplink.ddl-generation" value="create-tables"/>
<property name="toplink.target-database" value="Auto"/>
<property name="toplink.jdbc.driver" value="org.gjt.mm.mysql.Driver"/>
<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/itcast?useUnicode=true&characterEncoding=UTF-8"/>
<property name="toplink.jdbc.user" value="root"/>
<property name="toplink.jdbc.password" value="123456"/>
</properties>
</persistence-unit>
</persistence>
3、用法不变
分享到:
相关推荐
#### 三、小结 以上介绍的是JPA中单字段主键生成的基本策略。每种策略都有其适用场景和优缺点。开发者应根据具体的应用需求和数据库特性选择最适合的生成方式。例如,在性能要求较高的场景下可以选择`IDENTITY`或`...
小结 在使用 Spring Data JPA 连接 MySQL 8.x 时,需要注意环境变量的配置、数据库连接信息的配置、时区的配置、useSSL 的配置、JDBC 版本的配置等。同时,需要正确地配置方言设置,以避免出现问题。
"Spring Data JPA知识点详解" ...小结 Spring Data JPA是一种基于JPA的数据访问技术,它提供了一种简洁的方式来访问关系数据库。使用Spring Data JPA可以简化数据库操作,提高开发效率和可读性。
#### 四、小结 通过以上步骤,我们可以构建一个基于 Spring Boot、Dubbo、ZooKeeper 和 JPA 的微服务架构。这种架构不仅具备良好的可扩展性,而且能够很好地应对分布式系统的复杂度。在实际开发中,我们还需要结合...
#### 六、本文小结 Spring Data JPA 大大简化了 JPA 的使用方式,使得开发者能够更高效地进行数据访问层的开发。通过遵循约定优于配置的原则,减少了大量模板代码的编写,提高了开发效率。 #### 第二篇 在第二篇...
小结 本文总结了 Spring Boot + Jpa(Hibernate) 架构基本配置的知识点,包括 Spring Boot 和 Jpa(Hibernate) 的简介、配置和 Maven 依赖项的添加。通过本文,读者可以了解如何使用 Spring Boot 和 Jpa(Hibernate) ...
目录 企业级应用的特点 JPA及JPA使用技巧 使用泛型DAO来简化DAO层的开发 IOC容器、AOP及Spring2 EasyJWeb如何实现快速开发 小结
#### 六、小结 通过以上步骤,我们已经完成了使用BEA Workshop Studio 3.3搭建基于JSF+Spring+JPA(Hibernate)的Web应用的基本设置。此IDE的强大之处在于它内置了大量的插件与向导,极大地简化了开发过程,尤其是...
八、小结 本篇文章主要介绍了SpringBoot整合JPA的实例代码,使用Hibernate作为JPA Provider,实现了数据持久化和查询等功能。通过本篇文章,可以了解如何使用JPA在SpringBoot项目中实现数据持久化。
1.5 小结 第2章 myedipse开发工具对各种框架的支持 2.1 使用jsp的两种模式 2.2 struts框架的实现 2.3 hibernate框架的实现 2.4 jpa框架的实现 2.5 spring框架的实现 2.6 jsf框架的实现 2.7...
### JavaSE与JavaEE基础部分小结 #### JavaSE 基础知识点 ##### Java语言特点 1. **跨平台性**:Java的核心优势之一在于它的可移植性,即“一次编写,处处运行”。这意味着Java程序可以在任何安装了Java运行环境...
13. **JPA生命周期回调注解**:如`@PostLoad`、`@PrePersist`、`@PostPersist`、`@PreUpdate`、`@PostUpdate`、`@PreRemove`和`@PostRemove`,这些注解提供了在特定实体生命周期事件发生时执行自定义逻辑的机会。...
1.5 小结 第2章 启动项目 2.1 启动Hibernate项目 2.1.1 选择开发过程 2.1.2 建立项目 2.1.3 Hibernate配置和启动 2.1.4 运行和测试应用程序 2.2 启动Java Persistence项目 2.2.1 ...
294 16.3.5 数据库连接池中使用JDBC 297 16.4 小结 302 第17章 ORM与Java持久化机制 303 17.1 ORM概述 303 17.2 域模型 304 17.3 实体域对象的持久化模式 304 17.4 JPA 305 17.4.1 实体 306 17.4.2 EntityManager ...
1.5 本章小结 第2章 测试设计模式 2.1 针对失败而测试 2.2 工厂 2.3 数据驱动测试 2.4 异步测试 2.5 测试多线程代码 2.6 性能测试 2.7 模拟和桩 2.8 依赖的测试 2.9 继承和annotation范围 2.10 测试分组 2.11 ...
1.5 本章小结 第2章 测试设计模式 2.1 针对失败而测试 2.2 工厂 2.3 数据驱动测试 2.4 异步测试 2.5 测试多线程代码 2.6 性能测试 2.7 模拟和桩 2.8 依赖的测试 2.9 继承和annotation范围 2.10 测试分组 2.11 ...
第一部分 Strut 2:一个全新的框架 第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 ...15.7 小结 332
目录 第一部分spring的核心 第1章开始spring之旅 1.1spring是什么 1.2开始spring之旅 1.3理解依赖注入 ...1.5小结 ...2.6小结 ...3.7小结 ...4.6小结 ...5.5.1使用jpa模板 ...5.5.3建立使用jpa的dao ...5.8小结 ...b.4小结