Ibatis原理分析

Ibatis框架架构如下图所示:


[img]http://dl2.iteye.com/upload/attachment/0109/7353/cea0d2a9-e26e-3149-b795-4050ebc687e1.gif[/img]


外部Java Application调用SqlMapClient接口,经过SqlMapSession、SqlMapExecutorDelegate等实现类,通过PersistentObject、ParameterMap、ResultMap、

MappedStatement、Transaction等,基于JDBC、JTA等事务操作,最后调用SqlExecutor操作类对数据库进行操作

SQL Map框架可以专门用于O/R映射,O/R映射是JavaBean对象到数据库中关系表的映射。SQL Map框架使用XML描述符将JavaBean映射到SQL语言,执行SQL

并将结果映射返回对象,其核心功能是围绕MappedStatement进行的。

在实现O/R时,通常是通过配置SqlMapConfig.xml来定义总体变量、事务管理模式、连接数据库信息,同时,指定包含MappedStatements,ResultMap、ParameterMap的映射文件位置等内容,然后通过SQL Map API 将JavaBeans对象映射到PreparedStatement参数和ResultSet,并完成持久化操作



SQL Map提供了一个简洁的框架,使用简单的XML描述文件将Java Bean,Map实现和基本数据类型的包装类(String,Integer等)映射成JDBC的PreparedStatement。以下流程描述了SQL Maps的高层生命周期:
将一个对象作为参数(对象可以是Java Bean,Map实现和基本类型的包装类),参数对象将为SQL修改语句和查询语句设定参数值。


1) 执行mapped statement。这是SQL Maps最重要的步骤。SQL Map框架将创建一个PreparedStatement实例,用参数对象为PreparedStatement实例设定参数,执行 PreparedStatement并从ResultSet中创建结果对象。


2) 执行SQL的更新数据语句时,返回受影响的数据行数。执行查询语句时,将返回一个结果对象或对象的集合。和参数对象一样,结果对象可以是Java Bean,Map实现和基本数据类型的包装类



结合传统的JDBC操作,转化为SQL Map要执行如下操作:

配置SQL Map配置文件,载入JDBC驱动程序和数据库连接(包括事务管理模式和DataSource模式)等信息
配置SQL Map映射文件,包括parameterMap、resultMap、SQL等信息,其中parameterMap是输入参数信息,resultMap是输出结果信息,sql是SQL语句部分
根据SQL Map配置文件配置信息,加载配置的JDBC驱动程序
根据SQL Map配置文件,建立数据库连接
根据SQL Map映射文件中的sql信息和parameterMap信息,建立符合JDBC规范的SQL语句和输入参数
执行SQL 语句
处理结果集,把数据库结果集转化为SQL Map映射文件中的resultMap格式内容
关闭数据库连接

你可能感兴趣的:(Ibatis)