初识Hibernate

Hibernate(冬眠)

  1. 优缺点:

    a)优点:Hibernate是一个轻量级的, 以ORM(Object-Relation-Mapping)设计思想构建的, 持久化框架. 此框架无侵入性. 极大的提高了开发效率. 框架提供了缓存机制和强大的查询能力. 支持多种数据库的访问. 并在一定程度上实现0 SQL开发. 可以快速实现数据库移植;
    b)缺点:
    i.该框架程序员是没有办法干预sql语句的生成的;
    ii.如果一个项目中,对sql语句的优化的要求比较高,这个时候不能用hibernate来做;
    iii.不适用表之间的关系很复杂的情况以及数据超过千万级别;

  2. 持久化概念:

    a.狭义:对数据进行存储;
    b.广义:对数据进行CRUD操作;

  3. 持久化类,映射文件(*.hbm.xml),配置文件(Hibernate.cfg.xml);

  4. POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称;

  5. Hibernate的事务不是自动提交的,需要手动提交;(查询时有load和get两种方法前者支持懒加载后者不支持,懒加载:当要使用此对象时才会进行加载,不使用就不加载);

  6. 错误:session-factory中定义了name属性,而dtd中没有定义会出现JNDI错误;

  7. Configuration类:加载Hibernate的配置文件;

  8. *SessionFactory类:

    a.Hibernate配置文件和持久化类的信息以及映射文件信息全部在此类中;
    b.生命周期整个hibernate实例,本身是线程安全的,且只有一个对象;
    c.二级缓存存放在此类中;
    d.和数据库连接没有直接的关系;

  9. Session类:

    a.一个session代表一个数据库连接;
    b.CRUD操作是session完成的,需注意关闭session;

  10. 在获取标准服务对象信息的时候不同版本会有不同的写法;

  11. Hibernate生命周期

    a)临时状态:只在内存中存在与session无关;
    b)持久化状态:在hibernate中存在==>数据库,session进行管理;
    c)游离状态:数据对象在内存中存在,且在数据库对应表中有相应的记录与session无关;
    d)Session.get()方法获得是一个持久化状态对象,当事务提交时,hibernate自动更新,使用session.evict()可以让持久化对象变成游离状态防止自动更新,update转化为持久化状态;
    e)session.clear方法把hibernate中所有的持久化状态转化为脱管状态;

  12. Hibernate内部会自动比较当前对象和副本是否一样,一样则不做更新,反之则更新;

  13. 反向工程

  14. Hibernate有两种类型:java type(效率高)和hibernate type两者之间有对照;

  15. 主键生成策略:increment、assigned(手动)、native(自适应)、identity(orcal不支持)、sequence(支持orcal字符串类型)、uuid;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值