iBatis的更新语句执行过程分析。
来源:互联网 发布:域名 授权 编辑:程序博客网 时间:2024/05/24 02:38
首先通过 SqlMapClientBuilder.buildSqlMapClient(reader);得到sqlMapClientImpl实例,然后调用自身的update(String id, Object param),它调用SqlMapSessionImpl的update(id, param),然后它调用delegate的update(sessionScope, id, param)方法,通过参数id得到delegate中的statement,然后调用statement的executeUpdate(StatementScope statementScope, Transaction trans, Object parameterObject)。在这个方面里面有一些关键逻辑需要陈述。
(1) Sql sql = getSql();//得到的sql为StaticSql,SimpleDynamicSql或DynamicSql
(2) 调用sql的getParameterMap得到parameterMap实例
(3) 调用sql的getResultMap的得到resultMap实例
(4) 我们把入参对象解析成入参数组,供设置到ps中
Object[] parameters = parameterMap.getParameterObjectValues(statementScope, parameterObject);
(5) 从sql对象解析成真正的sql语句
String sqlString = sql.getSql(statementScope, parameterObject);
//如果原来sql中含有#,则一律转换成?
//如果原来sql中含有$,则直接用值进行替换
//如果是动态sql,则根据参数情况,转换成最终运行时的sql
(6) 然后执行sqlExecuteUpdate(statementScope, trans.getConnection(), sqlString, parameters);
它调用sqlMapClient的getSqlExecutor,然后sqlMapClient再调用delegate的getSqlExecutor得到最终的数据库执行工具类
SqlExecutor
(7) 在sqlExecutor的sqlExecuteUpdate方法里,statementScope.getParameterMap().setParameters(statementScope, ps,parameters);对ps进行设置入参,最后执行sql语句
- iBatis的更新语句执行过程分析。
- IBatis.NET执行一条语句的过程分析
- ibatis中显示执行的SQL语句
- ibatis执行过程
- Oracle sql语句执行过程图文分析
- SQL语句的执行过程
- SQL语句的执行过程
- SQL语句的执行过程
- sql 语句的执行过程
- for语句的执行过程
- SQL语句的执行过程
- ibatis 执行非查询语句
- finally语句的执行分析
- 使用LOG4J打印ibatis执行的SQL语句
- 怎么为ibatis配置日志,查看执行的sql语句
- IBatis系列-执行存储过程
- * 执行多条更新的Sql语句
- HiveSQL的执行过程分析
- Flex控制对主机网页中脚本的访问
- Android AlertDialog解决点击按钮立即消失的问题
- ACE中网络通讯编程基本架构——20110518
- flex应用中如何关闭浏览器
- Sqlite的分页查询
- iBatis的更新语句执行过程分析。
- VIM使用笔记
- Windows 7 照片查看器 照片泛黄的解决方法
- Linux中的pipe与named pipe(FIFO),即管道和命名管道
- php引用&符号详解
- Visual Studio 2008 每日小窍门 【持续发布ing~】 Tips:010
- 汗。。。自己的java语法居然都没学全for (File file : files)
- 福州师大邀请赛解题报告
- 关于在windows下部署发布QT程序的总结