转载

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
正文到此结束
Loading...