木木的Java知识整理——JDBC与MyBatis的区别

看了几篇大佬的相关整理,可以总结成如下几部分。

一、各自定义

1.1 JDBC

Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

JDBC是Java提供的一个操作数据库的API

我们平时使用jdbc进行编程,大致需要下面几个步骤
1,使用jdbc编程需要连接数据库,注册驱动和数据库信息;
2,操作Connection,打开Statement对象;
3,通过Statement对象执行SQL,返回结果到ResultSet对象;
4,使用ResultSet读取数据,然后通过代码转化为具体的POJO(Plain Old Java Objects,普通的Java对象)对象;
5,关闭数据库相关的资源。

jdbc的缺点
1.工作量比较大,需要连接,然后处理jdbc底层事务,处理数据类型,还需要操作Connection,Statement对象和ResultSet对象去拿数据并关闭他们;
2.我们对jdbc编程可能产生的异常进行捕捉处理并正确关闭资源。

1.2 MyBatis

MyBatis是一个持久层ORM框架,底层是在JDBC的基础上进行了扩展和封装。

持久层:采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个类对应哪个表,哪个属性对应哪个列。持久层的目的就是,完成对象数据和关系数据的转换。
将内存中的数据保存到数据库中,以防止重启后数据丢失。

Mybatis需要提供的映射文件包含了一下三个部分:sql,映射规则,pojo(Plain Old Java Objects,普通的Java对象)。在Mybatis里面你需要自己编写sql,可以配置动态sql,同时也可以对sql进行优化,通过配置决定你的sql映射规则,也能支持存储过程,所以对于一些复杂和需要优化性能的sql查询它就更加方便。
Mybatis几乎可以做到jdbc所有能做到的事情。

二、JDBC与MyBatis的区别

JDBC,MyBatis的区别
1)从层次上看,JDBC是较底层的持久层操作方式,而MyBatis都是在JDBC的基础上进行了封装使其更加方便程序员对持久层的操作。
2)从功能上看,JDBC就是简单的建立数据库连接,然后创建statement,将sql语句传给statement去执行,如果是有返回结果的查询语句,会将查询结果放到ResultSet对象中,通过对ResultSet对象的遍历操作来获取数据;MyBatis是将sql语句中的输入参数和输出参数映射为java对象,sql修改和优化比较方便。
3)从使用上看,如果进行底层编程,而且对性能要求极高的话,应该采用JDBC的方式;如果要灵活使用sql语句的话建议采用MyBatis框架。

MyBatis相比JDBC的优势
(1) mybatis使用已有的连接池管理,避免浪费资源,提高程序可靠性。
(2) mybatis提供插件自动生成DAO层代码,提高编码效率和准确性。
(3) mybatis 提供了一级和二级缓存(需要配置打开),提高了程序性能。
(4) mybatis使用动态SQL语句,提高了SQL维护。(此优势是基于XML配置)
(5) mybatis可使用配置文件管理sql语句:使用JDBC对数据库进行操作时,SQL查询语句分布在各个Java类中,这样可读性差,不利于维护,当我们修改Java类中的SQL语句时要重新进行编译;Mybatis可以把SQL语句放在配置文件中统一进行管理,以后修改配置文件就行,也不需要重新编译部署。
(5) mybatis对数据库操作结果进行自动映射:在使用JDBC进行查询时,返回一个结果集ResultSet,我们要从结果集中取出结果封装为需要的类型;在Mybatis中可以设置将结果直接映射为自己需要的类型,比如:JavaBean对象、一个Map、一个List等等。
(6)一致的编码风格大大减少了代码的沟通交流成本。

参考资料:
1、Mybatis和JDBC区别
2、jdbc,mybatis,hibernate各自优缺点及区别
3、Mybatis和JDBC区别

  • 10
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBCMyBatis是两种不同的持久层框架。JDBCJava 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、付费专栏及课程。

余额充值