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框架执行流程图


朱优秀
1 声望0 粉丝