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