`
jiagou
  • 浏览: 2595380 次
文章分类
社区版块
存档分类
最新评论

JPA学习笔记---JPA理解---第一个JPA程序

 
阅读更多
1.
a.JPA和Hibernate是sun提出的java持久化的规范.JPA是Hibernate,和TopLink,JDO等ORM框架


基础上发展而来的.
b.和jdbc类似,比如刚刚没有jdbc的时候链接数据库要用各个数据库厂商提供的api,有了jdbc


以后,就把各种数据库的差异封装在了jdbc中,这样就可以直接使用jdbc了,jpa就是这样的一


种技术,可以用jpa封装各种orm的差异.比例会缩小.
--------------------------------
2.jpc是一个规范,还不是一个产品,比如hibernate已经是一个产品了.
3.
a.jpa包含3个部分:
1.orm映射元数据.元数据是描述对象和表之间关系的数据
2.java持久化api,用来操作crud,操作实体对象.
3.查询语言,不.现有的orm技术.
------------------------------------------
4.jpa的实现产品之一是hibernate;
用到的jar文件;
a.hibernate-annotations-3.4.0.zip用到的hibernate所支持的注解:因为hibernate提供


了两种方案一种是使用xml实现,一种是使用注解,这个包就是注解的支持包.其中包括


hibernate-annotations.jar
b.hibernate-distribution-3.3.1.zip是hibernate的核心包
c.hibernate-entitymanager-3.4.0,是针对jpa的一个实现器e对其核心包的一个包装.
----------------------------------
hibernate对jpa做了一个实现,这个实现是基于核心包基础上的.所做的封装包就


在.hibernate-entitymanager-3.4.0中.
------------------------------------------------
jpa中要注意:
jpa程序实例:
1.导入包的时候,路径不可以有中文或者是空格
2.persistence.xml报错Element type "persistence" must be followed by


either attribute specifications, ">" or "/>".
一般都是多了个空格,或者是从其他的地方,拷贝过来的时候的,出现的编码问题,去掉多余


的部分(空格等)问题解决
-----------------------------------------------------------------
jpa:
1.persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<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="EjbXmlMappingsPU" // 持久化单元名
transaction-type="JTA(default)/RESOURCE_LOCAL" // 事务类型
-->
<persistence-unit name="EjbXmlMappingsPU" transaction-type="JTA">
<description></description> <!-- 描述 -->
<provider>oracle.toplink.essentials.PersistenceProvider</provider> <!-- 指定一个


持久化提供者 -->
<jta-data-source>jdbc/MyDataSource</jta-data-source> <!-- 指定JTA数据源 -->
<non-jta-data-source>jdbc/NonTxMyDataSource</non-jta-data-source> <!-- 指定非JTA


数据源 -->
<mapping-file>META-INF/my_queries.xml</mapping-file> <!-- 指定映射文件 -->
<mapping-file>META-INF/my_entities.xml</mapping-file>
<jar-file>my/my-classes.jar</jar-file> <!-- 指定托管类的附加JAR -->
<class>myclass1</class> <!-- 明确列出的类 -->
<class>myclass2</class>
<exclude-unlisted-classes/> <!-- 使本地类不能被加到持久化单元中 -->
<properties> <!-- 使用提供者属性 -->
<property name="toplink.logging.level" value="FINE"/>
<property name="toplink.cache.size.dafault" value="500"/>
</properties>
</persistence-unit>
</persistence>
-------------------------------------------------------
ActionFormBean: DTO(Data Transfer Object)数据传输对象,它封装了HTML表单数据
▼好处:
1.减少传输冗余的数据,提高传输效率(请求包含的)
2.有助于实现各个层之间的独立
▼分类: 1.静态ActionFormBean 2.动态ActionFormBean
▼区别 1.静态的手工编写ActionFormBean,表单数据作为类的属性
动态的在struts-config.xml中配置,表单数据以键值对形式存放在


DynaActionForm的Map集合
2.一旦表单数据列表发生变化,动态的须修改action源代码,不能实现对


修改关闭
3.动态的无法实现数据验证
●静态ActionFormBean
1.创建ActionFormBean
自定义ActionFormBean,类名习惯FormBean结尾,extends ActionForm
属性名必须与form表单字段name属性值一致,且数量一致.生成get,set方法.可选择性


覆盖validate方法
▼validate方法: 只验证表单数据的格式和语法,不负责检查数据是否符合业务逻辑
action中validate属性值为true时,才执行


validate方法
验证正确把ActionFormBean对象保存在scope指定


作用域交给Action处理
验证错误则转向input属性指定组件
---------------------------------------------------------------------------------


--
jsp中取得formbean中的参数:
4.EL表达式来在jsp页面读取formbean中的数据
有action配置
<action name="LayoutForm" attribute="att" path="/Layout" scope="request"


type="Layout.LayoutAction">
<forward name="Layout" path="/Layout.jsp" />
</action>
jsp页面获取方式:${att.username}或者${LayoutForm.username}
-------------------------------------------------------------


编写jpa程序:两种方法:
1.先建立表,后再根据表来编写配置文件和实体bean,使用这种方案的开发人员受到了传


统数据库建模的影响;
2.先编写配置文件和实体bean,然后再生成表;使用这种方案的开发人员采用的是领域建
模的思想,这一种思想
相对前一种思想更加的OOP,面向对象;
-----------------------------------------------------------------------
分享到:
评论

相关推荐

    JPA学习笔记-EJB-04JPA关联映射总结

    本篇笔记主要聚焦于JPA的关联映射,这是JPA中一个重要的概念,用于定义实体之间的关系。 关联映射允许我们将数据库中的表关系映射到Java对象的关联上。在Hibernate中,这些关系通常通过XML配置文件来定义,而在JPA...

    JPA学习笔记-EJB-02JPA属性注解

    ### JPA学习笔记-EJB-02JPA属性注解 #### 一、引言 在上一篇文章中,我们简要介绍了Java Persistence API (JPA)的基础知识,包括它的基本部署和操作流程,从而让我们对JPA有了初步的认识。本文将继续深入探讨JPA的...

    JPA学习笔记-EJB-03JPA主键生成策略总结

    ### JPA主键生成策略详解 #### 一、概述 持久化对象的主键生成机制在JPA(Java Persistence API)中占据着重要的位置。它不仅关乎数据的唯一标识符如何确定,还与数据的存储效率及应用逻辑紧密相关。JPA通过`@...

    JPA学习笔记-EJB-05JPA实体对象状态和实体对象的高级操作

    ### JPA实体对象状态 ...通过理解和应用这些概念,开发者可以更好地控制数据的持久化过程,并实现高效、可靠的应用程序开发。无论是从数据同步的角度考虑,还是从日志记录的需求出发,这些技术都能提供强有力的支持。

    传智播客JPA学习笔记修改免积分版

    ### 传智播客JPA学习笔记知识点梳理 #### 一、JPA概述与核心价值 - **定义**: JPA (Java Persistence API) 是由 Sun 官方提出的一种 Java 持久化标准,旨在为 Java 开发者提供一套统一的对象-关系映射 (ORM) 工具,...

    jpa学习笔记

    ### JPA 学习笔记详解 #### 一、JPA 概述 Java Persistence API (JPA) 是 Sun 公司提出的一种 Java 持久层标准,它为 Java 开发者提供了一种对象关系映射 (ORM) 的工具来管理 Java 应用程序中的关系型数据。JPA ...

    JPA学习文档笔记

    ### JPA学习文档知识点概述 #### 1. JPA简介 - **定义**: JPA (Java Persistence API) 是由Sun官方提出的一种Java持久化规范,旨在简化Java应用程序中关系型数据库的操作过程。其核心目标是统一现有的ORM (Object-...

    传智播客JPA学习笔记.pdf

    **Java Persistence API (JPA)** 是Java平台上的...以上就是JPA学习笔记中的关键知识点,涵盖了JPA的基本概念、环境配置、对象关系映射、查询语言、事务管理、关联关系等多个方面,对于理解和应用JPA有重要的指导作用。

    JPA学习笔记

    【JPA学习笔记】 JPA(Java Persistence API)是Java平台上的一个ORM(Object-Relational Mapping)规范,它提供了一种将Java对象与数据库表进行映射的机制,简化了数据库操作。JPA允许开发者使用面向对象的方式...

    Spring-data-jpa 学习笔记.docx

    ### Spring-data-jpa 学习笔记 #### 一、spring-data-jpa的简单介绍 Spring Data JPA 是 Spring Data 的一部分,它简化了基于 Java Persistence API (JPA) 的数据访问层开发工作。Spring Data 旨在减少数据访问层...

    spring-data-JPA学习笔记

    在"spring-data-JPA学习笔记"中,我们主要关注的是如何使用JPA进行CRUD操作以及一些常用的查询方法。 首先,Spring Data JPA 提供了一种基于方法名的自动查询映射机制。例如,`findByUsernameAndPassword(String ...

    JPA学习笔记(高手笔记录)

    JPA(Java Persistence API)是Java平台上的一个规范,用于管理和持久化Java对象到数据库。它为开发人员提供了一种ORM(Object-Relational Mapping)机制,使得在Java应用中操作数据库变得更加简单。JPA通过元数据...

    传智播客——JPA学习笔记

    网络上有一份pdf格式的《JPA学习笔记》,但是内容排版有点乱,而且有缺失的部分,小弟从原来的blog处拷贝出来,并加以排版,制作成了chm格式的,大家应该知道chm格式比较适合作为参考资料或帮助文档的文件格式了。

    jpa学习笔记 介绍了jpa中state的概念和应用

    本篇学习笔记主要探讨了JPA中实体的状态及其转换,包括New、Managed、Detached和Removed四种状态。 首先,实体(Entity)是JPA中的核心概念,它代表数据库中的一个记录。实体的身份(Identity Fields)用于唯一标识...

    jpa 全面学习资料

    JPA学习笔记** 学习笔记可能涉及更深入的话题,如: - **懒加载(Lazy Loading)与急加载(Eager Loading)**: 管理关联对象的加载时机。 - **继承映射(Inheritance Mapping)**: 包括单表继承、联合继承和表格...

Global site tag (gtag.js) - Google Analytics