前言
MyBatis官网:
https://mybatis.org/mybatis-3/
正文
什么是Mybatis:
来自官网的介绍:MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records.
Mybatis在项目中的地位
与Hibernate相似,都是数据访问层的框架,Mybatis在我们的项目中,它的服务位置是我们的DAO(数据库的访问层),我们使用它来进行操作数据库。由于他的配置上的灵活,目前Mybatis比Hibernate流行。
MyBatis的优缺点:
优点:
1、简单易学
Mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
2、灵活
Mybatis不会对应用程序或者数据库的现有设计强加任何影响。sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
3、解除sql与程序代码的耦合
通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。
4、提供映射标签,支持对象与数据库的orm字段关系映射
5、提供对象关系映射标签,支持对象关系组建维护
6、提供xml标签,支持编写动态sql。
缺点:
1、编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。 2、SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。3、框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。4、二级缓存机制不佳。
总的来说,Mybatis的优点同样是Mybatis的缺点,正因为Mybatis使用简单,数据的可靠性、完整性的瓶颈便更多依赖于程序员对sql的使用水平上了。sql写在xml里,虽然方便了修改、优化和统一浏览,但可读性很低,调试也非常困难,也非常受限。Mybatis没有Hibernate那么强大,但是Mybatis最大的优点就是简单小巧易于上手,方便浏览修改sql语句。