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 提供了一级和二级缓存详解