2011级-csdn-java-张侃— Hibernate原理与应用(二)

基本概念和CURD

开发流程

1、由Domain object -> mapping->db。(官方推荐)

      

2、由DB开始,用工具生成mapping和Domain object。(使用较多)

 

3、由映射文件开始。

Domain Object限制

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

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

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

 

      DomainJava Object(User)
       public class User {
              private int id;
              private String name;
              private Date birthDay;
              //gettersetter…
}

1、xx.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>


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





 

 

1.Configuration类

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

2.SessionFactory接口

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

3.Session接口

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

4.Transaction接口

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

 

Session的缓存(一级缓存)

Session的CRUD方法以及调用查询接口的list(),iterate()方法时,如果session缓存中不存在相应的对象,Hibernate就会把该对象加入到第一级缓存中,如果session缓存中已经存在这个对象,就不需在去数据库加载,而直接使用缓存中的对象。

l          flush: 进行清理缓存(此时缓存中的数据并不丢失)的操作,让缓存和数据库同步执行一些列sql语句,但不提交事务,;

l           commit:先调用flush() 方法,然后提交事务. 则意味着提交事务意味着对数据库操作永久保存下来。  

session的缓存一般交由hibernate框架自动管理。

Session的几个主要方法

       1、save保存数据

       2、delete,删除对象

       3、update,更新对象,如果数据库中没有记录,会出现异常。

       4、get,根据ID查,会立刻访问数据库。

       5、Load,根据ID查,(返回的是代理,不会立即访问数据库)。

       6、saveOrUpdate (根据ID和version的值来确定是save或update



 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值