Hibernate--概述

Hibernate介绍:
ORM:Object/Relation Mapping,对象-关系映射,就是通过将Java对象映射到数据库表,通过操作Java对象,就可以完成对数据表的操作。

hibernate:是一个开源的关系型数据库ORM框架,用于JavaEE应用的持久层解决的一种方案,它提供了对关系型数据库的增删改查操作。

优点:
Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码
Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作
Hibernate使用java的反射机制
Hibernate的性能非常好,因为它是一个轻量级框架。映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系

编写流程:
0.导入jar包
1.创建数据库和表
2.编写javabean和映射文件 (对象 和  表 之间 映射 --> ORM)
3.编写 核心配置文件
4.测试,使用api

jar包:
hibernate-distribution-3.6.10.Final\ hibernate3.jar
hibernate-distribution-3.6.10.Final\ \lib\required  所有,表示必须
hibernate-distribution-3.6.10.Final\ lib\jpa  hibernate对jpa支持
数据库驱动:mysql-connector-java-5.1.22-bin.jar

映射文件:
1.文件名:xxx.hbm.xml   (与javabean同名且同包)
2.添加约束:hibernate3.jar-->org.hibernate—>hibernate-mapping-3.0dtd
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
映射关系:
<hibernate-mapping>
 <class name="cn.itcast.a_hello.User" table="t_user">
  <id name="uid">
   <!-- 主键生成策略 -->
   <generator class="native"></generator>
  </id>
  <property name="username"></property>
  <property name="password"></property>
 </class>
</hibernate-mapping>

核心配置文件:
1.配置文件名称:hibernate.cfg.xml
2.位置:src (类路径classpath)
3.添加约束:hibernate3-->org.hibernate--->hibernate-configuration-3.0dtd
<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
配置内容:
<hibernate-configuration>
 <session-factory>
  <!-- 基本4项 -->
  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/h_db</property>
  <property name="hibernate.connection.username">root</property>
  <property name="hibernate.connection.password">1234</property>
  <!-- 必须将映射文件添加到主配置文件中 -->
  <mapping resource="cn/itcast/a_hello/User.hbm.xml"/>
 </session-factory>
</hibernate-configuration>

体系结构:
 PO对象:Persistent Objects,持久对象,hibernate用于操作持久对象的,每一个持久对象都具有一个映射文件
 VO value object 值对象,一般用于web层
 BO business object 业务对象,一般用于service层
 PO 持久对象,一般用于dao层
---综合的称呼:JavaBean
 OID:每一个PO对象有存在一个唯一标识,是hibernate用于区分PO对象的。
 Java区分对象:地址不同,如果new两个对象,java不同的。
 hibernate po对象:使用OID进行区分的,及时new两个对象,只要OID值相同,hibernate认为是一个对象。
 OID用于存表中主键值的。

猜你喜欢

转载自jackpot1234.iteye.com/blog/2316530
今日推荐