mybatis和jdbc有啥区别

JDBC是Java提供的一个操作数据库的API,是一种规范;

mybatis是一个持久层框架,用java编写的.
他封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程.
他使用了ORM思想实现了结果集的封装
(ORM:Object Relational Mapping 对象关系映射
简单的说:就是把数据库表和实体类及实体类的属性对应起来,
让我们可以操作实体类就实现操作数据库表)

MyBatis是一个持久层ORM框架,底层是对JDBC的封装。
MyBatis对JDBC操作数据库做了一系列的优化:
(1) mybatis使用已有的连接池管理,避免浪费资源,提高程序可靠性。
(2) mybatis提供插件自动生成DAO层代码,提高编码效率和准确性。
(3) mybatis 提供了一级和二级缓存,提高了程序性能。
(4) mybatis使用动态SQL语句,提高了SQL维护。(此优势是基于XML配置)
  sql写在xml里,便于统一管理和优化。解除sql与程序代码的耦合。
(5) 提供对象关系映射标签,支持对象与数据库的orm字段关系映射

jdbc的缺点:
  1.频繁创建连接,浪费资源
  2.SQL语句硬编码,不利于维护
  3.传参是硬编码,不利于维护
  4.结果集是硬编码,不利于维护

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

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

ps:
mybatis 提供了一级和二级缓存详解

posted @ 2024-02-23 18:02  李云蹊  阅读(369)  评论(0编辑  收藏  举报