JPA学习笔记---JPA理解---第一个JPA程序
发布日期:2021-06-29 18:04:26 浏览次数:2 分类:技术文章

本文共 3675 字,大约阅读时间需要 12 分钟。

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,面向对象;
-----------------------------------------------------------------------

转载地址:https://credream.blog.csdn.net/article/details/8566661 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:UML学习笔记---了解UML,UML相关知识,相关概念
下一篇:java相关求助---Java泛型的理解与等价实现---------没有完全明白啊...请大神指导...

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月10日 06时51分13秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章