MyBatis框架总结
来源:互联网 发布:机械制图网络课程 编辑:程序博客网 时间:2024/06/04 19:34
浅谈一下又学到的第一个持久化曾框架 MyBatis
什么是 MyBatis ?
MyBatis 是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 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,省去了数据赋值到对象的步骤而已,除此以外并无太多作为,方便浏览修改sql就是它最大的优点了。
适用场景:
mybatis适用于小型且程序员能力较低的项目和人群使用,对于中大型项目来说我并不推荐使用
- MyBatis框架总结
- MyBatis框架总结
- Mybatis框架个人总结
- MyBatis框架总结
- 【MyBatis框架】配置文件-resultMap总结
- Mybatis框架总结(一)
- 【MyBatis框架】配置文件-resultMap总结
- springmvc+mybatis框架学习总结
- 初次学习Mybatis框架总结
- 关于MyBatis框架的总结
- mybatis知识总结(二)框架分析
- Mybatis+SpringMVC+Spring框架实践总结
- MyBatis持久层框架使用总结
- MyBatis总结之框架原理浅析
- Mybatis框架学习总结--1如何搭建
- Spring+SpringMVC+mybatis框架环境搭建总结
- 关于Mybatis框架的个人总结
- spring+springmvc+mybatis框架搭建总结
- python_socket网络套接字
- 1079. 延迟的回文数 (20)
- Scala基础学习之函数定义,流程控制,异常处理
- myeclipse2014创建webservice从0开始,跳过一个个的坑
- AutoCAD .Net 遍历符号表
- MyBatis框架总结
- Java--线程基础知识学习初步记录(1)
- OpenStack公共组件oslo之十五——taskflow
- PAT数据结构与算法题目
- Server Tomcat v7.0 Server at localhost failed to start解决方法
- js中作用域和上下文等问题分析
- ansible 自动化运维实现角色定制
- TCP原理 粘包分包现象
- AutoCAD .Net 程序自动加载 AutoLoader