hibernate第一天

1 Hibernate是什么

        Hibernate是一个数据库的操作框架

1.1 Jdbc的缺点

l jdbc的效率比较低

每一次请求,打开连接、发送sql语句,在数据库中解析sql语句等需要消耗大量的资源。

重复性代码特别多

       每一次都需要关闭connection,statement,rs

       Jdbc没有做到面向对象编程

       没有做到数据缓存

          现在世界上数据缓存做的很不错的框架(hibernate,oscache,ehcache)

               Oscacheehcache都有页面缓存

                  *  就是把页面上的数据缓存到本地磁盘上

                  *  当应用程序再次访问的时候,直接从磁盘上读取数据就

可以了

                        *  页面缓存不适合做更新特别频繁的数据

1.2    Jdbc的优点

        是最底层的操作数据库的框架,所以在java的层面上说速度最快

        Jdbc做到了connection pool

1.3 Hibernate优点

l 面向对象编程

l Hibernate的底层也是由jdbc实现的

l Hibernate的数据缓存做的相当棒

l Hibernate做到了connection pool

1.4 Hibernate缺点

      Hibernate不会让程序员干涉sql语句的生成,sql语句是hibernate内部操作jdbc生成的,所以在一个项目中,如果对sql的优化要求比较高,这个时候,不适合用hibernate

      如果一张表的数据量特别大(千万级别以上),也不适合用hibernate

2 Hibernate的学习内容

l 学习hibernatecrud操作

l 持久化对象的状态

l 一对多和多对多(重点)

l 数据缓存(一级缓存、二级缓存、查询缓存)(重点)   数据缓存的特点

l Hql语句

3 hibernatecrud操作

3.1 类与表的映射关系

3.2 Hibernate配置文件的加载方式

3.2.1 方式一

     注意:

1、 配置文件的名称必须是hibernate.cfg.xml

2、 把hibernate.cfg.xml文件必须放在classpath

3.2.2 方式二

       注意:

1、 利用该方法配置文件的名称可以随意写

2、 路径可以随意放

3、 Resource代表路径名称+文件名称

 注意:hibernate的事务默认不是自动提交的

3.3 crud操作注意事项

3.3.1 session.get方法

1、 要使用session.get方法,那么相对应的持久化类中必须保证有一个无参的构造函数

2、 该方法的第二个参数与持久化类中的主键的类型要保持一致。

3、 Session.get方法的第二个参数的形参:Serializable.因为只有这样才能接受所有的数据库的主键的类型

3.3.2 session.update

               参数可以是session.get方法得到的对象,也可以是新创建的对象,但是cid的值必须和数据库的值相对应。

4 Hibernate流程

5 sessionFactory

1、 sessionFactory中存放配置文件和映射文件的所有的信息

2、 一个数据库有且仅有一个sessionFactory

3、 sessionFactory是一个单例的对象

4、 sessionFactory是一个重量级别的类,只加载一次

5、 sessionFactory是一个线程安全类

6 主键的生成机制

      考虑hibernate主键的生成机制可以从三方面去想:

            客户端

            Hibernate内部可以生成主键

            数据库内部的机制生成主键

6.1 Incrment

1、 获取主键的最大值,然后加1

2、 主键的类型必须是数字类型

3、 第一步的过程是由hibernate内部做的

4、 发出select max(cid) from Classes  这样的sql语句,所以效率比较低

5、 主键的值是连续的

6.2 Identity

1、 适用于数字类型

2、 数据库表本身的自动增长

3、 主键是在数据库内部生成的

4、 表必须得设置为自动增长

6.3 Assigned

      由程序员自己设置生成

6.4 Uuid

       由hibernate内部生成一个唯一的字符串


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值