为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下jdbc和mybatis效率差距主要因为什么?

/ 猿问

请问一下jdbc和mybatis效率差距主要因为什么?

慕工程0101907 2019-09-10 16:10:49

jdbc和mybatis效率差距主要因为什么


查看完整描述

4 回答

?
汪汪一只猫

这里面你有一个误解。
MyBaties 也是基于JDBC的。Java与数据库操作仅能通过JDBC完成。 MyBaties也要通过JDBC完成数据查询、更新这些动作。
MyBaties 仅仅是在JDBC基础上做了,OO化、封装事务管理接口这些东西。JDBC是地基,MyBaties /Hibernate 是两栋外形各自有特点的楼房,楼房之间可以比较!地基就这一种。

查看完整回答
反对 回复 2019-09-14
?
暮色呼如

通过JDBC程序找到使用原生态的JDBC开发程序当中存在的问题。
通过学习mybatis,mybatis是如何解决这些问题的。
mybatis是个框架,所以我们要先了解mybatis的架构,然后做mybatis的入门程序,不是一个简单的helloworld。

实现用户的查询,添加,修改。
dao是我们持久层的接口,mybatis开发dao两种方法。
1.原始的dao开发方式,就是dao的接口和dao的实现都需要编写

查看完整回答
反对 回复 2019-09-14
?
一只斗牛犬

代码中最重要的一点,可扩展性,mybatis连接数据库的用户密码等都是写在配置文件中,即使数据库有更改,java代码也不需要重新编译。
mybatis的连接池管理,缓存管理等对于数据库的访问优化更好

查看完整回答
反对 回复 2019-09-14
?
123456qqq

其实,没有什么区别。
就底层的SQL的执行效率而言,二者都不会去具体的实现数据驱动,底层都依赖数据库的JDBC驱动程序。没有区别。
持久层面上,MyBatis 用xml 配置SQL语句。JDBCTemplate 直接书写SQL。但是最后的结果都要OO化(Spring 的 OO 化 可能需要写代码),本质上没有啥区别的。
所差别的是事务管理的灵活性和效率而以。
在事务灵活性上Spring的txManager 要好于 MyBatis 的SqlSession。二者的区别是Spring 的AOP 实现了前后通知,在3段提交过程中,可以很方便的定义补充动作。灵活的同时就带来效率的降低,毕竟AOP 是基于动态代理,动态代理就要用到反射,反射就是慢。
SQLSession 在灵活性上不如Spring 的 tx。但是就效率来说要好于tx,毕竟人家没有用到反射,就是一个代理模式应用而已。

综上,在分布式的条件下,建议Spring,在单点的条件下.....还是建议Spring。tx 虽然用到反射效率低,但是没有低到不能接受的程度。

查看完整回答
反对 回复 2019-09-14

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信