MyBatis的执行原理
为什么要使用mybatis?(JDBC的弊端)
什么是框架?
框架是一个半成品,已经对基础的代码进行了封装并提供相应的API,开发者在使用框架是直接调用封装好的api可以省去很多代码编写,从而提高工作效率和开发速度。
框架定义: 框架是一种经过校验 具有一定功能的半成品软件。
经过校验:指框架本身经过测试 并且框架自身所具有的功能已经实现。
具有一定的功能: 指框架可以完成特定的功能 不同的框架功能不同。
半成品软件: 指框架自身是一个软件,但是改软件无法。
MyBatis可以将SQL语句配置在XML文件中 这避免了JDBC在java类中添加SQL语句的问题;通过MyBatis提供的输入参数映射方式 将参数只有灵活地配置在SQL语句配置文件中,解决了JDBC中参数在java类中手工配置的问题;通过MyBatis的输出映射机制,将结果集的检索自动映射成相应的java对象,避免了JDBC中对结果集的手工检索;同时MyBatis还可以创建自己的数据库连接池,使用XML配置文件的形式,对数据库连接数据进行管理,避免了JDBC的数据库连接参数的硬编码问题。
综上所述,MyBatis的特点是,采用配置文件动态管理Sql语句,并含有输入映射,输出映射机制及数据库连接池配置的持久层框架。
MyBatis优点--(面试题)
简单:易于学习,易于使用,通过文档和源代码,可以比较安全的掌握它的设计思路和实现。
实用:通过了数据映射功能,提供了对底层数据访问的封装,提供了DAO框架,可以使我们更容易的开发和配置。
灵活:通过SQL基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
功能完整:提供了连接管理,缓存支持,线程支持(分布式) 事务管理,通过配置关系对象映射等数据访问需要解决的问题。提供了DAO支持,并在DAo框架中封装了DAO.NET NHibernate 和DataMapper.
增强系统的可维护性: 将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护 更易单元测试。SQL和代码的分离,提高了可维护性。
MyBatis整体架构,mybatis的执行原理
MyBatis的配置有2类配置文件 Mybatis-Config.xml 和Mapper.xml
MyBatis-Config.xml 配置了全局的参数 全局只有一个配置 文件名称不是固定的 随意取名,里面是你数据库的信息和一些代码格式的设置
Mapper.xml 配置了sql Statement 改文件可以有多个 每个配置文件中可以有多个sql Statement 一句话这个配置文件就是写SQL语句的
2 通过配置文件可以得到SqlSessionFactory
3通过SqlSessionFactory 得到SqlSession 得到Sessin后可以执行SQL
4SqlSessio 通过垫层提供的Executor(执行器)执行SQL
5MyBatis 将Mapper.xml 中的SqlStatement 解析为MappedStatement对象
6通过参数输入 参数类型有三种,HashMap 简单类型 pojo
7 在数据库中执行SQL
8输出得到结果 输出类型有三种 HashMap 简单类型 pojo
代码中的使用步骤:
1) 通过配置文件创建SqlSessinFactory
2) SqlSessionFactory 创建SqlSession对象
3) 通过SqlSessin 操作数据库
4)调用session.commit() 提交事务
5)调用session.close() 关闭会话