一、Hibernate-Annotation
1、
Java
Persistance
API
—
Java
持久化
API
其作用是通过注解或者是XML描述对象和关系表的映射关系,将运行期的实体对象映射到持久化的数据库中。
2、JPA
的目标:
1、简化现有JAVAEE和JAVSE的开发工作;
2 、整合现有的 ORM 各自为营的状况,实现天下归
二、JPA的现状
1、
Hibernate
从
3.2
开始支持
JPA
2、
JDO
也兼容
JPA
3、
Toplink
和
Apache
开发的
OpenJPA
都支持它的规范
4、
EJB
的实体
Bean
一直是被诟病的对象,
3.0
开始支持
JPA
以后,
EJB
的推广得到大大的改善。
5、
Spring
容器也从
2.0
开始支持
JPA
,使得支持
JPA
的各种
ORM
框架在
Spring
容器中都可以轻松被管理,相互之间的替换所花的成本也大幅下降
6、JPA
已成王道,规范就是规范,得到各大厂商的支持,使得它变得更为广泛。
三、Hibernate--Annotation的操作
三、Hibernate--Annotation的操作
1
、建立工程,本章节我们建立基本的
JavaApplication
工程。
2
、导入下载的
Hibernate
最新版本的
jar
包
3
、建立
hibernate.cfg.xml
文件
4
、
建立
DBUtil
对象
5
、书写
Bean
对象
6
、
在
Bean
对象中进行
Annotation
的配置
7
、
在
cfg
文件中告知
8
、书写
Dao
进行数据库操作
四、Hibernate.cfg.xml
五、DBUtil的实现
四、Hibernate.cfg.xml
五、DBUtil的实现
1、
DBUtil
的是我们常用的工具类,使用它来直接获取连接对象(
Session
)。
2、
Hibernate
中提供
Configuration
类来加载配置文件,然后构建
SessionFactory
对象,通过
SessionFactory
对象的
openSession
方法获取
Session
。
以前这个代码我们使用的是自动生成的。
六、Bean对象
六、Bean对象
1
、必须满足
JavaBean
的基本规范
2
、必须要有标识属性
3
、如果有集合类型的属性必须是集合的接口类型
没有变化!
七、在Bean对象上做注解配置
八、注解说明
七、在Bean对象上做注解配置
八、注解说明
1、
基本注解(全部是
JPA
注解规范):
2、
@Entity---
将一个类声明为一个可持久化的
POJO
类、必填
3、
@Table---
该持久类所对应的表,表明在
name
属性中给定
4、
@Id---
指定标识属性
5、
@Column---
指定属性所对应的列,如果列名和属性名一致,可以不定义
name
属性
6、
主键生成器:
@GeneratedValue(strategy=GenerationType.IDENTITY)
该注解由JPA提供,提供4种主键生成策略(枚举GenerationType中定义):
1、AUTO---主键由程序控制
2、TABLE---使用一个特定的数据库表来保持主键
3、IDENTITY---主键由数据库自动生成(包括MySQL,MSSQL、DB2等)
4、SEQUENCE---主键由数据库序列生成(Oracle),该值与generator属性一起使用,通过generator属性指定使用的序列名称。
7、
如果主键生成想使用
Hibernate
的特有生成方式,必须使用
Hibernate
定义的注解(非
JPA
注解)
•
@
GenericGenerator
(name="
hbincrement",strategy
="
increment
")
•
@
GeneratedValue
(generator="
hbincrement
")
8、
时间日期类型的注解说明:
@Temporal(
TemporalType.DATE
)
枚举
TemporalType
有三个值:
1
、
DATE---
年月日;
2
、
TIME---
时分秒;
3
、
TIMESTAMP
—
年月日时分秒;