hibernate入门笔记(2)

原创 2007年10月08日 14:49:00

day2


hibernate的配置文件hibernate.cfg.xml用于配置数据库的连接的信息,以及需要持久化的对象的xml映射文件的位置
在hibernate.cfg.xml中使用<mapping resource="xml/Student.hbm.xml">这种方式来指名要持久化对象的映射文件。
Configuration是用于解析hibernate.cfg.xml文件和XXXXX.hbm.xml文件,并产生SessionFactory对象。

SessionFactory是和一个数据库一一对应的,他只能对应一个hibernate.cfg.xml文件,一个hibernate.cfg.xml中只能配置一个数据库的连接信息。

POJO(普通的java类)

持久化对象和临时对象,持久化对象,即对象的信息在数据库中存在,在内存中也有。临时对象也就是新对象,没有同步到数据库。

Session,持久化管理器。

Hibernate的核心接口

Configuration,用于解析hibernate.cfg.xml文件和XXXXX.hbm.xml文件,并创建SessionFactory对象。
SessionFactory,用于创建Session对象。
Session,持久化管理器,对象级数据库操作
Query,对对象作持久化操作或查询操作
Transaction ,用于管理操作事务。

hibernate.cfg.xml中的标签
<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
 <property name="show_sql">true</property><!--显示sql语句-->
 <property name="format_sql">true</property><!--使显示的sql语句格式化-->
 <property name="dialect">....</property><!--使用的数据库方言信息-->
        <property name="connection.driver_class">....</property>
 <!--使用的数据库的驱动-->
 <property name="connection.url">....</property><!--连接数据库使用的url-->
        <property name="connection.username">...</property>
 <!--连接数据库的用户名-->
 <property name="connection.password">...</property>
 <!--连接数据库的密码-->

 <mapping resource="xxx/xxxx/Xxxxxx.hbm.xml"/>
 <!--引入的映射对象的xml文件的全路径及文件名-->
 </session-factory>
</hibernate-configuration>

对象映射文件
<hibernate-mapping package="XXX.XXX.XXX" auto-import="false"><!--映射类所在的包-->
 <class name="Xxxxxx" table="Xxxxx"><!--将类和数据库的表联系起来-->
  <id name="studentId" column="studentId"><!--主键生成策略-->
   <generator class="assigned"/>
   <!--指定主键生成策略为用户指定-->
  </id>
  <property name="XXX" column="XXXX" type="string"/>
  <!--类中的书性和字段之间建立联系-->
  <property name="homeAddress" column="homeAddress"/>
  <property name="schoolAddress" column="schoolAddress"/>
  <property name="brithday" column="brithday" type="data"/>
                <!--在hibernate中其他类型可以自动识别只有Data类型必须指名-->
     </class>   
</hibernate-mapping>

id生成方式
1,序列sequence 只适用于Oracle 
<id name="id" column="id">
 <generator class="sequence">
  <param name="sequence">person_seq</param><!--指定sequence名-->
 </generator>
</id>

2,自增列,适用于SQLServer,MySql
<id name="id" column="id">
 <generator class="identity"/>
</id>

3,取最大值加一
<id name="id" column="id" type="integer">
 <generator class="increment"/>
</id>


4,根据底层数据库指定生成方法

 <id name="id" column="id">
  <generator class="native"/>
 </id>
针对Oracle数据库的生成方式还是sequence,只不过需要一个特定名字的sequence,"hibernate_sequence"。

5,高低位算法

<id name="id" column="id">
  <generator class="hilo">
   <param name="table">high_value</param>
   <!--设置高位值取值的表-->
   <param name="column">next_value</param>
   <!--设置高位值取值的字段-->
   <param name="max_lo">50</param>
   <!--指定低位最大值,当取道最大值是会再取一个高位值再运算-->
  </generator>
</id>

类关联关系映射

一对一关系实现

建表策略
1,共享主键,也就是一方引用另一方的主键,作为自身的主键,也是外键。
2,外键引用,也就是一方引用另一方的主键,作为外键,并且对引用的外键加唯一约束。

一对多

建表策略,多方引用一方的主键当作外键
 

Hibernate学习笔记(一)——简单的Hibernate实例入门

一、Hibernate简介 Hibernate是一个开源的对象/关系映射(ORM)框架,它对JDBC进行了轻量级的封装。所谓ORM就是Object/Relationship Mapping,为什么要...
  • u011024652
  • u011024652
  • 2016年09月19日 20:32
  • 851

Hibernate学习笔记之基础知识

Hibernate学习笔记
  • fanxiaobin577328725
  • fanxiaobin577328725
  • 2017年03月23日 17:07
  • 597

Hibernate自学详细笔记

Hibernate详细自学笔记,初学者快来看看吧!!!!
  • wangyang1354
  • wangyang1354
  • 2015年08月31日 21:23
  • 1243

Hibernate快速入门

Hibernate框架介绍什么是Hibernate我们可以从度娘上摘抄这样有关Hibernate的介绍: Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封...
  • yerenyuan_pku
  • yerenyuan_pku
  • 2017年03月20日 23:08
  • 1216

hibernate入门实例

一、准备工作 1,下载hibernate。地址:http://hibernate.org/orm/downloads/ 2,下载数据库驱动(以MySql为例)。地址:http://www.mysql....
  • passion_wu128
  • passion_wu128
  • 2015年11月30日 00:42
  • 3989

Hibernate框架笔记

Hibernate 课程内容: 1.   常见的O/R框架(了解) 2.   Hibernate基础配置(重点) 3.   ID生成策略(重点掌握auto) 4.   Hibernate ...
  • g_s007
  • g_s007
  • 2016年07月07日 15:39
  • 187

马士兵hibernate笔记

课程内容 1        HelloWorld a)   Xml b)   annotation 2        Hibernate原理模拟 - 什么是O/R Mapp...
  • l55iuming
  • l55iuming
  • 2015年10月17日 22:04
  • 982

hibernate快速入门案例

开发流程 1.创建一个项目 2.画出简单的项目框架图 3.引入hibernate开发包(http://www.hibernate.org) hibernate开发方式的三种方式: 1由Domain...
  • lightsu_1029
  • lightsu_1029
  • 2016年02月23日 21:54
  • 737

Hibernate框架基础——Hibernate入门

Hibernate入门Hibernate介绍Hibernate是一个基于jdbc的开源的持久化框架,是一个优秀的ORM实现,它很大程度的简化了dao层编码工作。Hibernate对JDBC访问数据库的...
  • yerenyuan_pku
  • yerenyuan_pku
  • 2016年10月04日 12:01
  • 8050

Hibernate学习笔记(一) — hibernate的配置文件简介与执行原理

一、初识Hibernate 1.JDBC的缺点: 1).编写代码的时候过于繁琐,try和catch比较多 2).没有做数据缓存 3).不是面向对象编程 4).sql语句固定,可移植性差 JDBC的优点...
  • u013497151
  • u013497151
  • 2015年08月05日 20:52
  • 959
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hibernate入门笔记(2)
举报原因:
原因补充:

(最多只允许输入30个字)