JPA学习笔记
JPA是sun提出的一个对象持久化规范,各JavaEE应用服务器自主选择具体实现,JPA的设计者是Hibernate框架的作者,因此Hibernate作为Jboss服务器中JPA的默认实现,Oracle的Weblogic使用EclipseLink(以前叫TopLink)作为默认的JPA实现,IBM的Websphere和Sun的Glassfish默认使用OpenJPA(Apache的一个开源项目)作为其默认的JPA实现。
JPA的底层实现是一些流行的开源ORM(对象关系映射)框架,因此JPA其实也就是java实体对象和关系型数据库建立起映射关系,通过面向对象编程的思想操作关系型数据库的规范。
- 实体Bean的开发:
JPA规范中定义的实体bean开发的基本规范:
(1).在实体bean上添加”@Entity”注解,标识该bean为实体bean。
(2).实体bean必须序列化。
(3).使用”@Table(name=数据库表名)”注解,标识该实体bean映射到关系型数据库中的表名,如果不指定则JPA实现会自动生成默认的表名称。
(4).必须有一个使用”@Id”注解标识的主键,如指定自增主键的写法为:
(5).Bean的其他属性使用”@Column(name=列名)”注解,指定该属性映射到数据库表中的列名,如果不指定在JPA实现会自动生成默认的列名。
(6).实体Bean必须严格遵循JavaBean的规范,提供无参的默认构造方法,属性提供set和get方法。
(7).最好重写hashcode()和equals()方法,实体bean的唯一标识是主键,因此,使用实体bean的主键来比较。
- java注解的优缺点:
优势:
(1).描述符减少,大大提高开发效率。
(2).编译期校验,错误的注解在编译期间就会报错。
(3).注解在java代码中,从而避免了额外的文件维护工作。
(4).注解被编译成java字节码,消耗的内存小,读取速度快,往往比xml配置文件解析快几个数量级,利用测试和维护。
缺点:
(1).配置信息分散,不利于集中维护管理。
(2).改动时涉及到了程序源代码,需要找到类的源代码才可以,而且必须通过编译这一步。相比较之下xml文件可能不需要找到类源码,同时也不需要重新编译。