1. 下载ibatis源码ibatis-2.3.4.726.zip
2. 解压后有个jar-dependencies.txt,可以查看ibatis的依赖包,其中jdk需要1.5,不是文档中写的1.4
3. 解压src/ibatis-src.zip,下载ibatis的所有依赖包,安装jdk1.5,就可以修改ibatis源码了
4. 找到com.ibatis.sqlmap.engine.execution.SqlExecutor类,建一个printLog方法,代码如下:
// 打印日志 private void printLog(PreparedStatement ps, Object[] parameters, String sql) throws SQLException { int count = ps.getParameterMetaData().getParameterCount(); for (int i = 0; i < count; ++i) { if (parameters[i] instanceof Date) sql = sql.replaceFirst("\\?", "'" + dateFormat.format((Date)parameters[i]) + "'"); else if (parameters[i] != null) sql = sql.replaceFirst("\\?", (parameters[i].getClass().getName().equals("java.lang.String")) ? "'" + parameters[i].toString() + "'" : parameters[i].toString()); else { sql = sql.replaceFirst("\\?", "null"); } } String trimSql = sql.toLowerCase().trim(); String outputSql = sql.replaceAll("[\t ]+", " "); if ((trimSql.startsWith("update")) || (trimSql.startsWith("insert")) || (trimSql.startsWith("delete"))) { if (!(trimSql.endsWith(";"))) { outputSql = outputSql + ";"; } } log.info(outputSql); }
5. 在executeUpdate,executeQuery方法里调用上面的打印日志方法.
6. 打成jar包,替换原来的ibatis-2.3.4.726.jar,就大功告成了.
7. ibatis的源码及依赖包见附件.
相关推荐
总结起来,本文介绍了如何结合Log4j和Ibatis来输出SQL日志。通过调整Log4j的配置,开发者可以方便地查看并理解应用程序中的数据库操作,从而提高代码的可维护性和性能。在实际开发中,合理地使用日志记录能够极大地...
设置完日志级别后,当iBATIS执行SQL时,相关的SQL语句和参数将按照配置的格式打印到控制台或指定的日志文件中。这有助于开发者了解SQL执行的具体情况,包括绑定的参数值、查询结果等。 4. **动态SQL**: iBATIS...
它将接收到的原始SQL语句进行处理,然后将其输出到日志文件,供开发者查看和分析。这对于跟踪性能问题、检查SQL语句是否正确以及优化数据库操作非常有用。 接下来,我们将分步骤介绍如何配置P6Spy以打印iBatis的SQL...
本书籍“iBATIS 框架源码剖析”提供了对iBATIS框架深入理解的机会,通过源代码分析,帮助读者掌握其内部工作原理。源代码带有详尽的注释,使得学习过程更为直观和高效。 iBATIS的核心概念主要有以下几个方面: 1. ...
7. **插件机制**:Ibatis允许开发者自定义插件,拦截SQL执行过程,实现如日志记录、性能分析等功能,扩展性极强。 8. **事务管理**:Ibatis支持手动和自动的事务管理,理解何时提交、回滚事务,以及事务的隔离级别...
下载的iBatis源码通过SVN获取,意味着可以查看其版本历史,了解每个版本的修改细节。 通过深入研究iBatis-2的源代码,我们可以理解其设计思想,学习如何构建高效的数据访问层,同时也能为现代ORM框架如MyBatis的...
IBatis.Net是一个轻量级的持久层框架,它提供了数据库访问的映射功能,帮助开发者将SQL语句与业务逻辑分离,实现数据访问层的解耦。 【描述】描述中提到的"IBatis.Net流风通用管理框架源码"意味着这是一个包含了...
AOP则允许我们在不修改已有代码的情况下,对程序进行横切关注点的处理,如日志记录、事务管理等。在Spring 3.1.4中,这些特性得到了进一步优化和完善。 iBatis框架则专注于数据访问层,它将SQL语句与Java代码分离,...
Ibatis遵循Apache License 2.0,这意味着你可以自由地使用、修改和分发源代码,但需遵守特定的条款,如保持原有的版权信息和提供修改记录等。 `META-INF`目录是Java标准的元数据存放位置,它通常包含服务配置、类...
9. **插件机制**: iBATIS提供了一种插件机制,可以拦截SQL执行过程中的各种行为,比如添加日志、性能监控等。 10. **缓存机制**: iBATIS支持本地缓存和二级缓存,可以提高数据读取速度,减少数据库压力。 通过上述...
MyBatis、iBatis和Hibernate在显示查询SQL方面,都依赖于日志系统的配置。MyBatis和iBatis更注重灵活性,适合需要自定义SQL的场景;而Hibernate则提供了更全面的ORM解决方案,适合大型项目。理解这些框架的SQL显示...
标题 "根据mybatis/ibatis sqlmapper文件解析生成数据库表" 暗示了我们将会探讨一个关于MyBatis或iBatis框架的工具,它能够解析SQL映射文件并根据这些文件自动生成数据库表。这个过程对于快速构建数据库模型,尤其是...
再者,iBatis是一个持久层框架,它提供了一个SQL映射文件,将SQL语句与Java代码分离,降低了数据库操作的复杂性。在iBatis中,我们可以通过XML或注解定义SQL语句,与Java对象进行绑定,实现动态SQL。在Spring与...
**iBatis** 是一个SQL映射框架,它将SQL语句和Java代码分离,使得开发者可以更自由地编写复杂的SQL而无需受到ORM框架的限制。iBatis通过XML配置文件或注解来定义SQL语句,与Spring2整合后,可以使用Spring的DAO接口...
本项目源码提供了一个完整的 Spring + iBATIS 的 Demo 示例,旨在帮助开发者理解和学习如何将这两个框架集成到一个Java项目中。下面将详细介绍这个项目的相关知识点。 **Spring 框架** Spring 是一个全面的后端开发...
7. **插件机制**: iBATIS允许开发者创建自定义插件,对执行的SQL语句进行拦截,实现如性能监控、日志记录等功能。 在提供的"ibatis-core-3.0-bundle.zip"中,可能包含了以下组件: - iBATIS的核心库,包含主要的...
6. **插件支持**:Ibatis允许用户自定义插件,可以通过拦截器对SQL执行过程进行扩展,如性能分析、日志记录等。 7. **结果集处理**:支持多种结果集处理方式,包括Map、List、单个对象以及自定义的Java集合类,便于...
8. **源码分析**:深入Ibatis源码,理解其执行流程和优化技巧。 9. **工具支持**:了解IDE中对Ibatis的支持,如插件安装和配置,以及如何利用它们提高开发效率。 通过以上知识点的学习,开发者能更好地掌握Ibatis-...