最近由于项目的需要,学习了下jap,以下就简单记录下最近这两天的学习总结:
1.jpa是一种规范而不是具体的orm产品架构,就像类中的接口一样,他只是规定了你能干什么,而具体的怎么干是需要根据不同的orm框架自来来确定的,但是没有仔细读过jpa的文档,不知道jpa中对主键查询的缓存功能是不是jap规范的一部分,但是通过最近的研究发现hibernate对jpa的实现是可以支持主键查询缓存的,通常就叫它一级缓存吧,同时hibernate自己也提供缓存机制,借助第三方缓存来实现,就姑且先称为二级缓存吧
2.jpa现在已经脱离于ejb的体系,因此可以在web容器中运行,但是如果项目中用到了ejb的相关bean则必须使用诸如glasfish等容器来运行
3.jpa的persistence.xml是jpa的核心配置文件
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
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_2_0.xsd">
<persistence-unit name="tao3cJPAStudy" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/datang" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="ws1985" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
<property name="hibernate.hbm2ddl.auto" value="create-update" />
<property name="hibernate.cache.use_second_level_cache" value="true" />
<property name="hibernate.cache.use_query_cache" value="true" />
<property name="hibernate.cache.region.factory_class" value="net.sf.ehcache.hibernate.EhCacheRegionFactory" />
</properties>
</persistence-unit>
</persistence>
以上是我工程的配置文件,插一句,最近使用了maven的项目管理构建工具,感觉比ant要强大的多,maven对工程版本,jar包的管理,工程构建的管理都是很方便和强大的。文件中首先是对版本的声明,目前的版本是2.0 ,具体1.0版本和2.0版本的区别还不是太清楚,但从自己的例子方面开,也可以使用1.0版本的dtd,但还是建议使用2.0版本。transaction-type声明了entityy的事务管理的方式,可以是jta 也可以是resource_local,persistence-unit 声明了持久化单元,他是生成entitiyfactory的具体实现,里面声明了数据库的连接,缓存策略等内容。provider指定了具体的jpa的实现着,这里使用的是hibernate的实现,sharaed-cach指定是否可以共享缓存。后面的properties是指定数据库的相关内容,需要注意的是 <property name="hibernate.hbm2ddl.auto" value="create-update" /> 这段代码主要声明了实体与数据库表之间的生成策略,如果你已经声明好了一个实体,但是还没有创建相应的表,使用该属性可以为你创建相关的表,但是前提必须要有已经建立好的相应的数据库。该属性的取值有create-update ,经过试验发现这个属性不能自动由实体来构建表,update属性可以在如果表不存在的情况下创建相关的表结构。create属性是当你每进行一次数据库操作的时候它都会创建一个新表,原有的旧表被删除,里面的内容自然就不存在了,所以要慎用此属性。如果已经建好表,并有相关的entity了则推荐使用create-update属性。在这个工程中采用的annotation的方式实现entity而不是使用配置文件,具体的代码会在下篇记录下,今天要去看考场,星期天要去国考,哎~~~~~~~~~~~打酱油啊,大家知道的,呵呵。
分享到:
相关推荐
15. **JDBC与JPA**:JDBC是直接访问数据库,JPA是对象关系映射。 16. **MDA**:模型驱动架构。 17. **TCP与UDP的区别**:TCP面向连接,保证顺序和可靠性;UDP无连接,不保证顺序和可靠性。 18. **链表与散列表和...
总结起来,Spring Boot Ojdbc入门班第三天的课程将涵盖Spring Boot与Oracle数据库的集成、数据源配置、JDBC操作以及Spring Data JPA的使用。通过学习这些内容,开发者可以熟练地在Spring Boot项目中管理Oracle数据库...
总结起来,"学习JavaEE的day20"涉及了Servlet、JSP、JPA、EJB、Web服务等多个关键知识点,这些都是构建和维护复杂企业级应用程序的基础。通过深入理解和实践这些技术,你将能够更好地掌握JavaEE平台,并为后续的开发...
课程安排为四天,每天聚焦一个主题,最后通过八个实验来检验学习成果,实验内容包括JSP、Servlet、Struts、Spring、Hibernate的单独和联合使用,以及JSF、会话Bean、消息驱动Bean、JPA和Web服务的实践操作。...
根据提供的信息,我们可以总结出以下相关的IT知识点: ### Java基础阶段 #### 1. Java基础知识 - **20天横扫Java基础**:这是一门针对初学者的课程,覆盖了Java的基础语法、数据类型、流程控制语句、类与对象的...
根据提供的信息,我们可以总结出以下相关的IT知识点: ### 一、尚硅谷的教育资源 #### Java教程 1. **Java基础阶段** - **20天横扫Java基础**:这是一套适合Java初学者的教程,通过20天的学习周期帮助学员快速...
本文将深入探讨如何利用Java技术栈,特别是Spring Boot框架,结合JQuery库,构建一个能够显示未来7天天气预测的Web应用程序——"TheWeatherForecast"。 一、Spring Boot MVC架构 Spring Boot以其快速开发、简化...
2. **Java EE(企业版)**:专为企业级应用设计,提供了大量的企业级组件和服务,如EJB、JPA、JMS等,支持Web服务和大型分布式系统。 3. **Java ME(微版)**:针对资源受限设备,如智能手机、PDA和其他嵌入式系统,...
- **hibernate-entitymanager.jar**:提供了JPA(Java Persistence API)的支持,使得开发者可以选择使用JPA规范进行编程。 - **hibernate-validator.jar**:提供了Bean Validation功能,用于验证对象属性的合法性...
在 Hibernate4 中,引入了 Criteria 查询,增强了性能优化,支持了 JPA 2.0 规范,提供了更为灵活的数据访问方式。通过 Hibernate,我们可以将 Java 对象直接映射到数据库表,从而减少了大量SQL编写工作,提高了开发...
1.2 Hibernate概述:Hibernate是Java领域中最受欢迎的ORM框架之一,它支持JPA规范,提供了丰富的API和工具,能够处理复杂的数据库交互。 二、Hibernate的安装与配置 2.1 安装:添加Hibernate的JAR包到项目类路径中...