面试题:谈谈你对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的理解的更多相关文章
- 谈谈你对Hibernate的理解
答: 1. 面向对象设计的软件内部运行过程可以理解成就是在不断创建各种新对象.建立对象之间的关系,调用对象的方法来改变各个对象的状态和对象消亡的过程,不管程序运行的过程和操作怎么样,本质上都是要得到一 ...
- 谈谈嵌套for循环的理解
谈谈嵌套for循环的理解 说for的嵌套,先说一下一个for循环的是怎么用的. 这次的目的是为了用for循环输出一个乘法口诀表,一下就是我的一步步理解. 一. 语法: ...
- JVM(一),谈谈你对java的理解
一.谈谈你对java的理解 1.Java特性 (1)平台无关性 一次编译到处运行 (2)GC 垃圾回收机制 (3)语言特性 泛型-反射机制-lambda表达式 (4)面向对象 面向对象语言-三大特性( ...
- 【面试普通人VS高手系列】谈谈你对AQS的理解
AQS是AbstractQueuedSynchronizer的简称,是并发编程中比较核心的组件. 在很多大厂的面试中,面试官对于并发编程的考核要求相对较高,简单来说,如果你不懂并发编程,那么你很难通过 ...
- 【Java面试】面试遇到宽泛的问题,这么回答就稳了,谈谈你对Redis的理解
"谈谈你对Redis的理解"! 面试的时候遇到这类比较宽泛的问题,是不是很抓狂? 是不是不知道从何开始说起? 没关系,今天我用3分钟教你怎么回答. 大家好,我是Mic,一个工作了1 ...
- 谈谈对hibernate的理解
它是ORM思想的一个实现,对JDBC进行了很好的封装,它通过配置使JavaBean对象和数据库表之间进行映射,并提供对增.删.改.查便利的操作方法,同时支持事务处理,它对数据库记录还提供了缓存机制,提 ...
- Java面试题之谈谈你对Struts的理解
1. struts是一个按MVC模式设计的Web层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet的子类.我们可以在web.x ...
- 框架面试题:谈谈我对Spring IOC与DI的理解
IOC是一种叫做“控制反转”的设计思想. 1.较浅的层次——从名字上解析 “控制”就是指对 对象的创建.维护.销毁等生命周期的控制,这个过程一般是由我们的程序去主动控制的,如使用new关键字去创建一个 ...
- 面试题-谈谈你对Java平台的理解
平台无关性 GC 语言特性 面向对象 类库 异常处理 一次编译到处运行 JVM如何加载Class文件 Java反射 ClassLoader 种类 双亲委派机制 loadcalss和forName
随机推荐
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:3.安装Oracle RAC-3.3.安装前检查
3.3. 安装前检查 1.检查节点连通性 或:./runcluvfy.sh stage -pre crsinst -n linuxrac1,linuxrac2 -fixup -verbose [gri ...
- chromatic aberration
https://github.com/keijiro/KinoFringe https://en.wikipedia.org/wiki/Chromatic_aberration 色差偏移 做神经病效果 ...
- hbase集群安装和shell操作
1.上传hbase安装包 2.解压 3.配置hbase集群,要修改3个文件(首先zk集群已经安装好了) 注意:要把hadoop的hdfs-site.xml和core-site.xml 放到hbase/ ...
- 配置git账号和密码
最开始启动的时候 配置用户名和用户邮箱,安装完git第一件要做的事情! git config --global uesr.name "Sunnshino" git config - ...
- 在eclipse导入Java 的jar包的方法 JDBC
在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是 打开eclipse 1.右击要导入jar包的项目,点properties 2.左边选择java ...
- 【Python】八大排序算法的比较
排序是数据处理比较核心的操作,八大排序算法分别是:直接插入排序.希尔排序.简单选择排序.堆排序.冒泡排序.快速排序.归并排序.基数排序 以下是排序图解: 直接插入排序 思想 直接插入排序是一种最简单的 ...
- spring配置,spring中的bean 的id不能相同
lib下加入包 spring.jar commons-logging.jar src下添加 applicationContext.xml <?xml version="1.0" ...
- 数据库面试题.net
1.ADO.net中常用的对象 connection, command, sqladapter, dataset, dataview. 2.net中读写数据库要用到哪些类 DataSet数据存储 Da ...
- ViewStub 的使用
一.内容概述 举例说明ViewStub标签的使用 二.ViewStub类的文档说明及应用场举例 文档描述: A ViewStub is an invisible, zero-sized View th ...
- Knockout JS 演示样例
五个小样例,来自Knockout JS官方站点. //tutorial 1 //following codes uses to demonstrate observable values and ta ...