Struts、Hibernate简明教程2

hibernate

 Hibernate简介:

Jboss资助的开源项目,当前比较流行的持久层框架,是一种先进的JDBC封装框架。

 

优点:提高了数据访问层的开发效率,使我们不必直接调用JDBC来访问关系型数据库。Hibernate建立在面向对象的基础之上,开发人员只需针对对象进行操作,不必再关心数据库的连接关闭,sql的执行,以及resultset中的字段,将更多精力投入于业务逻辑层的实现。Hibernate本身采用了性能优化机制,提供了内置数据库联接池支持,从而提高了系统性能。而且,hibernate提供了对不同数据库的良好支持,通过修改配置参数可以实现在不同底层数据库间切换,提高了系统的可移植性。

1 hibernateConfiguration类、SessionFactory类和Session

上图描述了hibernate的配置文件(Hibernate.cfg.xml)、configuration类、SessionFactory类、Session类间的关系。

 

1.1 SessionFactory

用于保存所有映射关系、维护二级缓存、statement pool及创建Session由于其创建过程比较复杂、代价较高,但可以由多个线程并发调用的特性,所以在应用中我们共享一个SessionFactory

 

1.2 Session

不是我们通常意义上HttpSession,这里的Sessionhibernate的关系,类似于JDBCconnection的关系。我们通过Session进行增、删、查、改。一个Session实例不能被多个线程并发调用,因此调用后必须关闭才能被其他线程使用。Session通过事务进行commitrollback,通过session.beginTransaction()返回一个Transation类的实例。

 

注:基于上述特点,在实际应用中,我们通过一个SessionFactory管理类对SessionFactorySession进行池化管理,以节省系统资源。

2 hibernate的配置文件

2.1 示例

<?xml version='1.0' encoding='UTF-8'?>

<!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.username">card</property>

       <property name="connection.url">

jdbc:oracle:thin:@87.6.93.7:1521:assmng

</property>

       <property name="dialect">

org.hibernate.dialect.Oracle9Dialect

</property>

       <property name="connection.password">

card

</property>

       <property name="connection.driver_class">

oracle.jdbc.driver.OracleDriver</property>

 

       <mapping resource="com/persistent/ZoneTbl.hbm.xml"></mapping>

    </session-factory>

</hibernate-configuration>

2.2 可选配置项:

3 实体类影射文件

3.1示例

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

 

<hibernate-mapping>

<class name="com.persistent.ZoneTbl" table="ZONE_TBL" schema="CARD">

        <id name="zoneno" type="string">

            <column name="ZONENO" length="5" />

        </id>

        <property name="zonename" type="string">

            <column name="ZONENAME" length="9" />

        </property>

    </class>

</hibernate-mapping>

3.2 Hibernate的数据类型

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值