MyBatis知识总结

Mybatis架构

1、   2个配置文件,三个接口

1) sqlMapConfig.xml :Mybatis核心配置文件,功能:加载外部属性配置文件,配置日志文件等相关设置,配置数据源和事务管理,配置类别名,加载映射配置文件。

2) 表名Maper.xml :表映射配置文件,该文件配置了针对一张表需要执行所有sql语句;一张表对应一个表名Mapper.xml;一张表对应一个Pojo类;表映射文件需要在sqlMapConfig.xml中加载。

3) SqlSessionFactory 会话工厂对象,用来获取SqlSession对象。

4) SqlSession: 作为MyBatis工作的主要顶层API,表示和数据库交互时的会话,完成数据库增删改查功能。

5) Executor:a) 通过MappedStatement在执行sql前将输入的java对象映射至sql中;给?赋值并执行; 

b)Executor通过MappedStatement在执行sql后将输出结果映射至java对象或集合中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

使用jdbc开发时,和mybatis相比的不足

优缺点

优点

(1)SQL被统一提取出来, 便于统一管理和优化
 (2)SQL和代码解耦,将业务逻辑和数据访问逻辑分离
 (3)提供映射标签,支持对象和数据库的ORM字段关系映射
 (4)提供对象关系映射标签,支持对象关系组件维护
 (5)灵活书写动态SQL,支持各种条件的动态SQL生成

缺点

(1)编写SQL语句时工作量大,尤其是字段多、关联表多的时候更是如此
 (2)SQL语句依赖数据库,导致数据库移植性差

1,数据库连接,使用时就创建,不使用就释放,对数据库进行频繁连接开关和关闭,造成数据库资源浪费,影响数据库的性能

解决:使用数据库连接池管理数据库的连接

2,sql语句使用硬编码在java程序中,修改sql语句,就需要重新编译java代码,不利于系统维护

解决:把sql语句放在xml配置文件中,修改sql语句也不需要重新编译java代码

3,向预编译语句PreparedStatement中设置参数,对占位符位置和设置参数值,硬编码,修改sql语句也不需要重新编译java代码

解决:把sql语句和占位符设置参数值放在xml配置文件中

4,从result中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码

解决:将查询的结果集,自动映射成 java对象

二 mybatis框架,是一个持久层框架,是apache下的顶级项目

mybatis让程序员将主要精力放在sql上,通过mytabis提供的映射方式,自动生成满足需要的sql语句

mybatis可以向PreparedStatement中输入参数自动进行输入映射,将查询结果集灵活的映射成Java对象(输出映射),输入映射和输出映射这是mybatis的核心

mybatis框架执行流程图

MyBatis知识总结

原文 

https://segmentfault.com/a/1190000022355401

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » MyBatis知识总结

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址