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

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">



oracle.toplink.essentials.PersistenceProvider
jdbc/MyDataSource
jdbc/NonTxMyDataSource
META-INF/my_queries.xml
META-INF/my_entities.xml
my/my-classes.jar
myclass1
myclass2







-------------------------------------------------------
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配置


type="Layout.LayoutAction">


jsp页面获取方式:${att.username}或者${LayoutForm.username}
-------------------------------------------------------------


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


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

你可能感兴趣的:(java,数据库)