《java面试宝典》之hibernate常见面试题

hibernate 开发流程

1、是什么?

     hibernate是一种基于orm 的轻量级的框架

2、有什么?      

     1.对外提供操作数据库的接口

     2.事务的处理

     3.简化数据持久化的编程任务

 3、能干什么?

     1.orm

     2.提供操作数据库的接口

 4、怎么做?

     1.搭建hibernate的运行环境,将hibernate的包和hibernate所需要的包拷贝到lib 文件夹下

     2.O(vo)

     3.R 

     4.配置文件

        4.1 cfg.xml 放在classes根目录下,默认名字为hibernate.cfg.xml

            a.与数据库的连接

            b.可选配置

            c.映射资源的注册

        4.2 hbm.xml文件 名字与类名相同 并且与类放在一起           

            a. 对象与数据库表之间的映射

            b. 对象的属性与数据库表的字段之间的映射

            c.组件之间的映射

            d.对象与对象之间的映射

    5、客户端

     1.得到SessionFactory 

     2.通过SessionFactory 工厂来创建Session实例

     3.打开事务

     4.操作数据库

     5.事务提交

     6.关闭连接   

 

hibernate 运行流程

一、整体流程

     1.通过configuration来读cfg.xml文件

     2.得到SessionFactory 工厂(根据数据库的连接来创建sessionfactory)

     3.通过SessionFactory 工厂来创建Session实例

     4.打开事务

     5.通过session的api操作数据库

     6.事务提交

     7.关闭连接   

二 、save

     1.to--->po

     2.根基model和cfg.xml中映射文件的注册来找到hbm.xml文件

     3.根据hbm.xml文件中的unsave-value属性来判断是save还是update

     3.根据hbm.xml文件和model来动态的拼sql

     4.客户端提交或者刷新内存

     5.执行sql,值放到数据库

三、update、delete

     1.根据model 的id在内存hibernate的实例池中查找该对象

       如果内存中没有就到数据库中查找来保证对象的存在

     2.根据model和cfg.xml文件中映射文件的注册来找到hbm.xml文件

     3.根据model和hbm.xml 文件来动态拼sql

     4.客户端提交或者刷新内存

     5.执行sql

 四、Query

     4.1 load

         1.根据model的类型来找到hbm.xml文件

         2.判断id对应的对象是否存在

         3.用id做为查询条件来动态拼sql

         4.执行sql 查询(先在内存中查找,如果没有找到(会抛出例外),就去数

据库中查找)

         5.返回一个model类型的对象

     4.2 get

         4.执行sql 直接在数据库中查找,如果没有查到就会返回null

     4.3 query

        1.分析hql语句,得到model的类型

        2.根据moedel和cfg.xml文件中映射文件的注册找到hbm.xml文件

        3.根据model和hbm.xml文件来动态拼sql

        4.执行sql查询数据库

        5.返回一个resultset

        6.循环resultset的值,放到model中在放到集合中

posted @ 2021-09-23 11:59  代码界的吴彦祖  阅读(63)  评论(0)    收藏  举报