mybatis与springjdbc比较,谁更有优势
1个回答
展开全部
其实,没有什么区别。
就底层的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 虽然用到反射效率低,但是没有低到不能接受的程度。
就底层的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 虽然用到反射效率低,但是没有低到不能接受的程度。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询