J2EE框架——Hibenate简介

来源:互联网 发布:数控加工编程实例 编辑:程序博客网 时间:2024/06/18 09:32

Hibernate作为SSH架构中和数据库直接通信的持久化框架,作用非常重要,Hibernate作为Web应用的底层,实现了对数据操作的封装,是转变传统JDBC操作数据库的方式

一.ORM简介

ORM即Object/Relation Mapping对象关系映射,ORM对数据细节的访问进行封装,可以通过映射实现数据操作转换成对象的操作,当使用面向对象的方式来操作持久化对象时,ORM框架能自动将这些操作装换成SQL语句,完成对数据库的操作。即不需再写SQL语句。

二.Hibernate的优势

市场上流行的EJB3和Hibernate一样是持久化框架,但是重量级框架,不适合轻量级开发。Hibernate采用XML来对对象关系映射进行配置,不依赖于任何代码,只需修改XML配置文件即可(小可最欣赏此优势)

注意:配置时只需要下载hibernate3.jar放到WEB-INF的lib目录下即可

三.Hibernate配置和相关类

1.Configuration类
负责管理Hibernate的配置信息,一个Configuration类的实例代表了应用程序中Java类到数据库的映射的集合,应用程序通常只创建一个Configuration类,通过他创建SessionFactory实例:

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

Configuration是Hibernate的入口,新建实例时,Hibernate会在类路径中查找文件hibernate.properties和hibernate.cfg.xml,如果同时存在,后者覆盖前者,都不存在抛出异常

指定路径访问:

String filename = "my_hibernate.xml";Configuration c = new Configuration().configure(filename);

2.配置文件

/**hibernate.cfg.xml*/<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"03"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>        /**数据库连接*/        <property name="connection.url">            jdbc:mysql://localhost/test        </property>        /**数据库驱动*/        <property name="connection.driver_class">            com.mysql.jdbc.Driver        </property>        /**用户名*/        <property name="connection.username">root        </property>        /**密码*/        <property name="connection.password">0000        </property>        /**数据库方言*/        <property name="dialect">            org.hibernate.dialect.MySQLDialect        </property>        /**指定映射文件*/        <mapping resource="com/yl/test/hibernate/User.hbm.xml" />    </session-factory></hibernate-configuration>

3.SessionFactory类
该类负责Session实例的创建,该线程是安全的,可被多个线程调用取得,但SessionFactory是重量级的,不可随意创建销毁,一般只初始化一个

四.Hibernate中的对象

1.对象状态
①临时状态:在数据库保存之前
②持久化状态:对象保存在数据库,但没脱离Session
③托管:当Session执行close或clear或evict后,变成托管

2.持久化类
持久化类时用用程序用来解决商业问题的类,其实例通过Hibernate持久化管理层,并保存到数据库中。持久化类只需简单的POJO编程模型即可,不再赘述

0 0