本文参考如下这篇优秀文章
一、什么是myBatis?
myBatis是一个基于java的持久层框架,它支持普通SQL查询、支持存储过程和高级映射。它使用简单的XML或者注解来配置映射,将接口和POJOS(普通java对象)映射成数据库中的记录。
持久层:就是将数据保存到存储设备中,供以后使用。
数据持久化:就是将内存中的数据保存到磁盘加以固化,持久化的实现过程则是通过各种关系数据库来完成。
持久层框架:Hibernate和myBatis。
二、myBatis功能架构
myBatis功能架构分为三层:
1>API接口层:提供给外部开发人员使用,开发人员通过这些本地API来操纵数据库。接口层一旦接收到调用请求就会调用数据处理层来完成具体的数据处理。
2>数据处理层:负责SQL查找、SQL解析、SQL执行和执行结果映射处理。它主要的工作是根据调用请求来完成一次数据库操作。
3>基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理等。
三、框架架构详解
1>加载配置:配置信息来源于两处:一是配置文件;二是java代码的注解。它的功能是将SQL的配置信息加载成一个个mappedStatement对象存储到内存中。
2>SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入参数(参数可以是map对象、javaBean或者基本数据类型),mybatis会根据SQL的id找到对应的mappedStatement,然后根据传入参数对mappedStatement进行解析,解析成 最终要执行的SQL语句和参数。
3>SQL执行:将2>得到的SQL语句送进数据库执行,得到执行后的结果。
4>结果映射:将数据库取回的结果按照映射的配置进行转换,可以转换成hashMap、javaBean或者基本数据类型,将最终结果返回。
四、动态SQL
它是myBatis最强大的特性之一。它可以很好的解决SQL的拼接问题。
五、ORM工具思想
ORM(Object Relational Mapping,对象关系映射),它是一种程序技术,用于实现javaBean属性与数据库字段之间的转换。
orm思想
1>从配置文件(通常是xml配置文件)中得到sessionFactory
2>由sessionFactory产生session
3>在session中完成对数据的增删改查和事务提交等
4>关闭session
5>在java对象和数据库之间做mapping配置。
六、mybatis实战教程系列
//查看如上参考网址