jdbc与mybatis的比较

mybatis也是基于JDBC的。

Java与数据库操作仅能通过JDBC完成。

mybatis也要通过JDBC完成数据查询、更新这些动作。

mybatis仅仅是在JDBC基础上做了,OO化、封装事务管理接口这些东西。

传统JDBC操作数据

       使用JDBC编程需要连接数据库,注册驱动和数据库信息操作Connection,打开 Statement 对象 。通过Statement执行SQL, 返回结果到ResultSet对象。使用ResultSet读取数据,然后通过代码转化为具体的POJO对象。关闭数据库的相关资源。jdbc存在弊端:

       工作量相对较大,每次都要去创建,关闭,获取JDBC编程可能产生的异常进行捕捉处理并正确关闭资源对象关系映射(Object Relational Mapping)简称 ORM

       ORM模型就是数据库的表和简单Java对象(Plain Ordinary Java Object,简称POJO)的映射关系模型。

       ORM模型提供了统一的规则使得数据库的数据通过配置便可轻易的映射到POJO上

常见的有两种

mybatis

       易于上手和掌握。sql写在xml里,便于统一管理和优化。解除sql与程序代码的耦合。提供映射标签,支持对象与数据库的orm字段关系映射提供对象关系映射标签,支持对象关系组建维护提供xml标签,支持编写动态sql。hibernate

       消除了代码的映射规则,它全部被分离到XML或者注解里面去配置。无需再管理数据库连接,它也配置到XML里面。一个会话中,不要操作多个对象,只要操作Sesison即可。关闭资源只需要关闭一个Session即可。mybaits与hibernate区别


1:性能
jdbc:数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响数据库性能。
mybatis:在SqlMapConfig.xml中配置数据连接池,使用数据库连接池管理数据库连接。

2:系统维护
jdbc:将sql语句硬编码到java代码中,如果sql语句修改,需要重新编译java代码,不利于系统维护。
mybatis:将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译。

3:输入参数
jdbc:向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。
mybatis:自动将java对象映射至sql语句,将sql语句及占位符号和参数全部配置在xml中。

4:输出参数
jdbc:从resutSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护。
mybatis:自动将sql执行结果映射至java对象,通过statement中的resultType定义输出结果的类型。
-------------------------------------------------------------------------------------
原文:https://blog.csdn.net/BushQiang/article/details/79839369
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBCMyBatis是两种不同的持久层框架。JDBC(Java Database Connectivity)是Java语言访问关系型数据库的标准API,而MyBatis是一个开源的持久层框架,它封装了JDBC的细节,简化了数据库访问的操作。 JDBC的缺点包括工作量较大和异常处理的复杂性。使用JDBC需要手动连接数据库、处理事务、操作各种对象并关闭它们。同时,我们还需要对可能出现的异常进行捕捉和正确关闭资源。 相比之下,MyBatis提供了更高级的抽象层,使得数据库操作更加简单和灵活。MyBatis通过XML或注解的方式将SQL语句与Java代码解耦,提供了更好的可维护性和可读性。此外,MyBatis还提供了缓存机制,可以提高查询性能。 总结来说,JDBC是一种更底层的数据库访问API,需要手动处理更多的细节,而MyBatis则是在JDBC之上提供了更高级的抽象,简化了数据库操作的过程,并提供了更好的可维护性和性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [木木的Java知识整理——JDBCMyBatis的区别](https://blog.csdn.net/weixin_42287169/article/details/105781951)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值