请问下,jdbc和hibernate有什么区别啊,二者都是持久层框架吗,跟DAO又有什么区别呢,请指点 5
7个回答
展开全部
1.首先jdbc不是持久性的,hibernate是的,hibernate实际上是对jdbc的持久性封装,因为hibernate的底层也是有jdbc来实现的。
2.再者,hibernate的效率比jdbc的要高,因为在hibernate里面存在一个缓存(cahe)机制,一级缓存和二级缓存,当从数据库中读取数据的时候会存储两份,一份给用户,一份自己留着,这样,下次访问的时候就不用去连接数据库,直接从缓存中读取,效率大大提高。
3.jdbc连接数据库是强制性的,每次都会去连接,只要输入url之后就会连接,而hibernate是手动连接,手动提交的。
dao太简单我就不说了,希望能帮到你。
2.再者,hibernate的效率比jdbc的要高,因为在hibernate里面存在一个缓存(cahe)机制,一级缓存和二级缓存,当从数据库中读取数据的时候会存储两份,一份给用户,一份自己留着,这样,下次访问的时候就不用去连接数据库,直接从缓存中读取,效率大大提高。
3.jdbc连接数据库是强制性的,每次都会去连接,只要输入url之后就会连接,而hibernate是手动连接,手动提交的。
dao太简单我就不说了,希望能帮到你。
展开全部
jdbc是java数据库连接的基础API,是java访问数据库操作的基础。
可以算是属于java API的一部分。
hibernate是对jdbc的封装和扩展。是持久化框架。
DAO是数据访问对象。数据访问对象是一种编程规范和理念,使得对于数据库开发的程序层析结构更加清晰,易于维护和开发。
可以算是属于java API的一部分。
hibernate是对jdbc的封装和扩展。是持久化框架。
DAO是数据访问对象。数据访问对象是一种编程规范和理念,使得对于数据库开发的程序层析结构更加清晰,易于维护和开发。
追问
持久化到底是个什么概念呢
追答
jdbc不是持久化框架,
它是一种java制定的访问数据库的规范。
是抽象出来的接口。
具体实现由各大数据库厂商去编写代码。
这样。我们就可以透过java标准的jdbc API去统一调用各家厂商的数据库了,
这才是能夸数据库平台的原因。
DAO称它为一种模式有点言过其实了,实际上他也不过是分层思想的一种。
我们在编写数据库的软件应用时,
通常把数据访问层的代码归为一层
业务层的代码是一层
。。。等等划分层次
这样编写的代码层次结构不是很清晰吗。
而且划分好层次之后也易于维护。代码的重用度也较高。
这符合面向对象编程的“强内聚,弱耦合”的思想。
层与层之间的耦合度低了。
因而使得每一层的替换和重构对另一层的影响降到了最低。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jdbc不是框架,是和DB交互的方式,而hibernate是通过面向对象的方式和DB进行交互,因为现在好多语言都是面向对象的,但是DB却不是,是关系型数据库,那么两者怎么结合列,这时候hibernate就出现了,jdbc可以直接写sql语句,虽说hibernate里面也可以但是没jdbc好用,jdbc可以做sql批处理,hibernate就不行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
hibernate封装了JDBC,增删改查拿来就能用,连接数据库也是在配置文件里配置的。所有依赖关系,多对一,一对多,多对多都可以在配置文件里进行配置。但是说到底,它在编译的时候还是会转成JDBC,因为JVM就认JDBC。框架框架,就是把比较复杂的代码封装起来,你好调用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
hibernate是jdbc的轻量级封装,用hibernate代替jdbc主要是有几点原因:1、hibernate可以避免拼sql语句的繁琐。2、hibernate是面向对象的,非常好的实现了ORM。3、hibernate可以跨数据库。DAO只是提供外部操作数据库的接口。
追问
不太明白,jdbc不也是一种持久层框架吗,他不是也可以跨数据库吗,Dao模式到底是一种什么样的模式呢,我新学的,有点乱,请指点下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询