Hibernate原理与应用(一)

本文详细介绍了Hibernate ORM框架的原理、安装配置、映射文件编写、基本概念与CURD操作,以及如何通过配置文件和映射文件实现对象与数据库表的映射,从而在Java开发中高效地进行数据持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,Hibernate的引用

a 模型不匹配(阻抗不匹配)

         Java面向对象语言,对象模型,其主要概念有:继承、关联、多态等;数据库是关系模型,其主要概念有:表、主键、外键等。

b解决办法

         1使用JDBC手工转换。

         2使用ORM(Object RelationMapping对象关系映射)框架来解决。

.Hibernate是一个开源ORM框架。

ORM全称Object RelationMapping,即对象关系映射。它是一种用来完成对象模型到关系模型的映射技术。

就是把应用程序中的对象数据持久化到关系数据库的表的一种技术。

使用ORMObjectRelation Mapping )框架来解决。主流的ORM框架有JBoss公司的HibernateOracle公司的TopLinkApache组织的OJBSun公司的JDO

简单的说:ORM能利用面向对象的思想开放基于关系型数据库的应用程序,它的主要工作是将对象数据保存到关系数据库的表中,以及将关系数据库表中数据读入到对象中。

.安装配置

   下载地址http://www.hibernate.org,使用3.3版本。

解压获取必需类库文件

将下载目录/hibernate3.jar/lib下的hibernate运行时必须的包加入classpath中:

1.      antlr-2.7.6.jar    语言转换器

2.      commons-collections-3.1.jar   用来增强java对集合的处理能力

3.      dom4j-1.6.1.jar       dom4j xml解析器

4.      hibernate3.jar    

5.      javassist-3.4.GA.ja r      代码生成工具hibernate用他在运行时扩展java

6.      jta-1.1.jar    标准的java事务处理接口

7.      log4j-1.2.15.jar

8.      mysql-connector-java-5.1.5-bin.jar

9.      slf4j-api-1.5.2.jar

10.  slf4j-log4j12-1.5.2.jar

配置文件hibernate.cfg.xmlhibernate.propertiesXMLproperties两种,这两个文件的作用一样,提供一个即可,推荐XML格式,下载目录/etc下是示例配置文件。

         可以在配置文件指定:

         数据库的URL、用户名、密码、JDBC驱动类、方言等。

         启动时Hibernate会在CLASSPATH里找这个配置文件。

  映射文件(hbm.xml,对象模型和关系模型的映射)。在/eg目录下有完整的hibernate

         步骤

       1.新建java项目,并加入相应的jar包,及jdbc驱动。

       2.创建持久化类

        3.准备数据库表

        4.创建配置文件 hibernate.cfg.xml

        5.创建映射文件 xxx.hbm.xml

         6.创建测试文件

Hibernate.connection.url  表示要链接的数据库地址

Hibernate.connection.driver_class   表示要链接的数据库的驱动类

Hibernate.connection.username    要连接的数据库的用户名

Hibernate.connection.password     要连接的数据库的密码

Hibernate.dialect   表示要使用的数据库的类型

         org.hibernate.dialect.MySQL5Dialect      mysql数据库

         org.hibernate.dialect.Oracle9Dialect        oracle数据库

         org.hibernate.dialect.SQLServerDialect   SQLServer数据库

hibernate.hbm2ddl.auto

         validate:加载hibernate时验证创建表结构

          update:加载hibernate时自动更新数据库结构,如果表存在不用创建,如果不存在就创建。

         create:每一次加载hibernate时都创建表结构

         create-drop:加载hibernate时创建,退出时删除

   基本概念和CURD

         开发流程

1、由Domainobject -> mapping->db(官方推荐)

        

2、由DB开始,用工具生成mappingDomainobject(使用较多)

3、由映射文件开始。

Domain Object限制

         1、默认的构造方法(必须的)

         2、有无意义的标示符id(主键)(可选)

         3、非final的,对懒加载有影响(可选)

         Domain Java Object(User)

         public classUser {

                   private int id;

                   private String name;

                   private Date birthDay;

                   //getter setter…

}

1xx.hbm.xml

<?xml version="1.0"?>

<hibernate-mapping package=“cn.itcast.domain">

<class name="User"table="user">

         <idname="id">

                   <generatorclass="native"/>

         </id>

         <propertyname="name"/>

         <propertyname="birthday”/>

</class>

</hibernate-mapping>

对象关系映射文件:把面向对象中的实体类对象映射到数据库中的实体(表的记录),把实体类之间的关联关系也映射到数据库中多个表之间的相互关系中。这样,在Hibernate中对这些实体对象的操作就直接转换为对数据库表的记录的操作。

<!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="connection.driver_class">com.mysql.jdbc.Driver</property>

    <property name="connection.url">jdbc:mysql:///hibernate</property>

    <property name="connection.username">root</property>

    <property name="connection.password">root</property>

    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

       <property name="show_sql">true</property>

       <property name="hbm2ddl.auto">update</property>

       <mapping resource="com/hbsi/domain/User.hbm.xml"/>

   

    </session-factory>

</hibernate-configuration>

1.Configuration

   Hibernate的入口,它负责配置并启动HibernateHibernate通过Configuration的实例加载配置文件信息,然后读取指定对象关系映射文件的内容并创建SessionFactory实例。

2.SessionFactory接口

  负责初始化Hibernate。一个SessionFactory实例对应一个数据库。应用程序从SessionFactory中获得Session实例。

3.Session接口

  Session被称为持久化管理器,负责管理与持久化相关的操作:存储、更新、删除和加载对象。

4.Transaction接口

Hibernate框架的事务接口。它对底层的事务接口做了封装。包括:JDBC APIJTA

1.Configuration

   Hibernate的入口,它负责配置并启动HibernateHibernate通过Configuration的实例加载配置文件信息,然后读取指定对象关系映射文件的内容并创建SessionFactory实例。

2.SessionFactory接口

  负责初始化Hibernate。一个SessionFactory实例对应一个数据库。应用程序从SessionFactory中获得Session实例。

3.Session接口

  Session被称为持久化管理器,负责管理与持久化相关的操作:存储、更新、删除和加载对象。

4.Transaction接口

Hibernate框架的事务接口。它对底层的事务接口做了封装。包括:JDBC APIJTA

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值