面试题:谈谈你对hibernate的理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题:谈谈你对hibernate的理解相关的知识,希望对你有一定的参考价值。

说说这类问题一般要和一个东西比較。说说他们的长处和缺点,hibernate就和JDBC比較呗。你就说说JDBC的优缺点。然后说说hibernate的优缺点,最后对照得出hibernate更好。

hibernate:

   1、概念:ormapping    对象关系映射

       1、操作数据库的框架

           底层是通过jdbc操作数据库的

       2、用面向对象的方式操作数据库

   2、jdbc的缺点

       1、代码太繁琐了

       2、不是面向对象的数据库操作

       3、资源关闭的代码也非常繁琐,每次都得打开、关闭

       4、没有做到数据缓存

       5、移植性比較差

       长处:

          由于是最低层的操作。所以效率比較高

   3、hibernate

       1、代码比較精简了

       2、是面向对象的数据库操作

       3、仅仅须要关闭一个对象就能够了session

       4、数据缓存  一级缓存  二级缓存  查询缓存

       5、移植性比較好

       缺点:

          1、程序猿不能控制sql语句的生成

              hibernate中有一个hql

          2、假设一个项目对sql语句的优化要求特别高。不适合用hibernate

          3、假设一张表的数据量特别大。不适合用hibernate

对于查询数据库的sql优化问题。这里有一个面试题,给你一个学生student表,叫你用各种方式查询出指定的学生信息

技术分享

这里有五种方式得出指定学生2,3,4的信息

--方式一
select *
from student
where id in(2,3,4)

--方式二
select *
from student
where id =2 or id=3 or id=4

--方式三
select *
from student
where id between 2 and 4

--方式四
select *
from student
where id>=2 and id<=4

--方式五
select *
from student
where id=2
union
select *
from student
where id=3
union
select *
from student
where id=4




以上是关于面试题:谈谈你对hibernate的理解的主要内容,如果未能解决你的问题,请参考以下文章

谈谈你对异常的理解(高频面试题)

Java面试经典题解析——谈谈你对Java平台的理解?

java面试题(杨晓峰)---谈谈你对java平台的理解

面试题:谈谈你对对vuex的理解

66期Java容器面试题:谈谈你对 HashMap 的理解

每日一题谈谈你对函数式编程的理解?