总体来说 MyBatis 主要完成两件事情
根据 JDBC 规范建立与数据库的连接;
通过Annotaion/XML+JAVA反射技术,实现 Java 对象与关系数据库之间相互转化
优点:
1. 易于上手和掌握。
2. sql写在xml里,便于统一管理和优化。
3. 解除sql与程序代码的耦合。
4. 提供映射标签,支持对象与数据库的orm字段关系映射
5. 提供对象关系映射标签,支持对象关系组建维护
6. 提供xml标签,支持编写动态sql。
缺点:
1. sql工作量很大,尤其是字段多、关联表多时。
2. sql依赖于数据库,导致数据库移植性差。
3. 由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。
4. 字段映射标签和对象关系映射标签仅仅是对映射关系的描述,具体实现仍然依赖于sql。(比如配置了一对多Collection标签,如果sql里没有join子表或查询子表的话,查询后返回的对象是不具备对象关系的,即Collection的对象为null)
5. DAO层过于简单,对象组装的工作量较大。
6. 不支持级联更新、级联删除。
7. 编写动态sql时,不方便调试,尤其逻辑复杂时。
8 提供的写动态sql的xml标签功能简单(连struts都比不上),编写动态sql仍然受限,且可读性低。
9. 若不查询主键字段,容易造成查询出的对象有“覆盖”现象。
10. 参数的数据类型支持不完善。(如参数为Date类型时,容易报没有get、set方法,需在参数上加@param)
11. 多参数时,使用不方便,功能不够强大。(目前支持的方法有map、对象、注解@param以及默认采用012索引位的方式)
12. 缓存使用不当,容易产生脏数据。
总结:
mybatis的优点其实也是mybatis的缺点,正因为mybatis使用简单,数据的可靠性、完整性的瓶颈便更多依赖于程序员对sql的使用水平上了。sql写在xml里,虽然方便了修改、优化和统一浏览,但可读性很低,调试也非常困难,也非常受限,无法像jdbc那样在代码里根据逻辑实现复杂动态sql拼接。mybatis简单看就是提供了字段映射和对象关系映射的jdbc,省去了数据赋值到对象的步骤而已,除此以外并无太多作为,不要把它想象成hibernate那样强大,简单小巧易用上手,方便浏览修改sql就是它最大的优点了。
相关推荐
mybatis总结,可学习
MyBatis是一个强大的Java持久层框架,专注于SQL查询、存储过程和高级映射。它将数据库操作与业务逻辑分离,避免了直接编写大量的JDBC代码,简化了开发工作。MyBatis通过XML或注解的方式将Java的POJOs(Plain Old ...
MyBatis总结!!!!!
MyBatis学习总结笔记 MyBatis是一个优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始...
该文件时我对MyBatis的一些简单的总结,希望能对大家有用,有不合理的地方希望大家多多指正,感谢大家的支持
Spring 通过 SqlSessionFactoryBean 和 MyBatis 的配置文件来初始化 SqlSessionFactory,然后通过 DataSourceTransactionManager 进行事务管理。此外,Spring 还可以利用 AOP 实现事务的声明式管理,简化代码。 **...
学习Mybatsi基础,实现的步骤 ,0基础入门案列,其他也没有过多的了,这是入门的第一天做的笔记,有问题大家可以指出。
学习Mybatis的自我总结
### MyBatis总结 #### JDBC回顾与MyBatis简介 **JDBC(Java Database Connectivity)** 是Java中用来规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。它由一组用Java语言...
总结来说,Mybatis 是一款优秀的 Java 持久层框架,它的主要优点包括简单易学、灵活的 SQL 编写、支持 ORM 映射和动态 SQL。通过 Mybatis,开发者可以更专注于业务逻辑,而不是繁琐的数据库操作,从而提高开发效率和...
总结,MyBatis通过核心配置文件、映射文件和Mapper接口实现了数据库操作的便捷和灵活。其强大的动态SQL功能、丰富的参数映射和结果集映射,以及缓存机制,都为Java开发人员提供了高效、可控的数据库访问手段。在实际...
"Mybatis总结.pptx"可能是对整个Mybatis学习过程的全面回顾,包括所有上述知识点的综合,也可能包含实际项目中的一些最佳实践。 至于".txt"文件,如"学习(五)用到的表.txt"、"学习(五、六)用到的表.txt"、"快速...
"mybatis总结.txt" 可能是一份学习笔记或者关键点汇总,包含了一些重要的知识点,比如 MyBatis 的缓存机制、结果映射、参数映射、自定义插件、SQL执行器的选择等,这些都是提升开发效率和优化性能的关键点。...
### MyBatis 知识点总结 #### 一、MyBatis 概述 - **起源与发展**:MyBatis 最初是 Apache 的一个开源项目 iBatis,于2010年由 Apache Software Foundation 迁移到了 Google Code,并更名为 MyBatis。2013年11月,...
MyBatis和SpringMVC是两个非常流行的Java开发框架,它们在企业级应用开发中有着广泛的应用。MyBatis是一个轻量级的持久层框架,它解决了Java与数据库交互时的繁琐工作,而SpringMVC则是一个强大的MVC(Model-View-...
这篇“mybatis学习总结”着重探讨了MyBatis如何与Spring和Spring Boot进行集成,这对于构建高效、可维护的企业级应用至关重要。 首先,MyBatis与Spring的集成主要通过Spring的IoC(Inversion of Control)容器来...
Mybatis总结,思维导图,包含多种文件格式 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 ...