Hibernate的工作原理以及为什么要用

我记得Hibernate在学校的时候就原理问题我是有专门研究过。但是岁月真的是把杀猪刀,把我的记忆快抹灭了。

hibernate的应用原理:

1. 通过Configuration().configure();取读并解析hibernate.cfg.xml配置文件

 Configuration config = new Configuration().configure() ;

2.由Hibernate.cfg.xml中的<mapping resource="../**.hbm.xml">读取并解析。

hibernate.cfg.xml

<session-factory>
 <property name="connection.url">jdbc:mysql://localhost:3306/demo</property>
 <property name="connection.username">root</property>
 <property name="connection.password">root</property>
 <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
 <property name="myeclipse.connection.profile">mysqlconliction</property>
 <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <mapping resource="com/model/test.hbm.xml"></mapping>
</session-factory>

3.通过config.buildSessionFactory();创建SessionFactory

SessionFactory factory = config.buildSessionFactory() ;

4.sessionFactory.openSession();//打开Sesssion
  this.session = factory.openSession() ;

5.session.beginTransaction();//创建事务Transation

   Transaction tran = this.session.beginTransaction() 

6.persistentoperate持久化操作

7.session.getTransaction().commit();//提交事务

tran.commit() ;

8.关闭Session

   this.session.close() ;
9.
关闭SesstionFactory

为什么要用:

1.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码

2.Hibernate是一个基于JDBC的主流持久框架,是一个优秀的orm实现,它很大程度上的简化DAO层的编程工作

3,Hibernate使用了Java的反射机制,而不是字节码增强程序来实现透明性

4.Hibernate性能非常好,因为他是轻量级框架,映射的灵活性很出色,它支持各种关系型数据库,从一对一到多对多的各种复杂关系。



test.hbm.xml

<?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.model.test" table="test" >
   <id name="testId" type="string">
            <column name="test_id" length="5" />
            <generator class="assigned" />
        </id>
  <property name="testName" type="string">
            <column name="test_name" length="100" />
        </property>
  
     </class>
</hibernate-mapping>








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值