`
sd_zyl
  • 浏览: 44560 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ibatis2.3.4.726问题一

阅读更多
  <select id="selectAccount" parameterClass="Account" resultMap="AccountResult">
    select
      ACC_ID ,
      ACC_FIRST_NAME ,
      ACC_LAST_NAME ,
      ACC_EMAIL 
    from ACCOUNT 
    <dynamic prepend="where">
    	<isEqual property="id" prepend="and">ACC_ID = #id#</isEqual>
		<isEqual property="firstName" prepend="and">ACC_FIRST_NAME = #firstName#</isEqual>
	</dynamic>
  </select> 

上面这段代码会带来sql错误,如果要正确,必须这样写,注意下面的空格:
  <select id="selectAccount" parameterClass="Account" resultMap="AccountResult">
    select
      ACC_ID ,
      ACC_FIRST_NAME ,
      ACC_LAST_NAME ,
      ACC_EMAIL 
    from ACCOUNT 
    <dynamic prepend="where">
    	<isEqual property="id" prepend="and"> ACC_ID = #id#</isEqual>
		<isEqual property="firstName" prepend="and"> ACC_FIRST_NAME = #firstName#</isEqual>
	</dynamic>
  </select> 


why?
com.ibatis.sqlmap.engine.mapping.sql.dynamic.DynamicSql这个类中的方法:

  private void processBodyChildren(StatementScope statementScope, SqlTagContext ctx, Object parameterObject, Iterator localChildren, PrintWriter out) {
    while (localChildren.hasNext()) {
      SqlChild child = (SqlChild) localChildren.next();
      if (child instanceof SqlText) {
        SqlText sqlText = (SqlText) child;
        
        String sqlStatement = sqlText.getText();
        //注意此处sqlStatement应该多加一个空格才能避免以上问题,
        //下面一行代码是我个人添加
        sqlStatement = " " + sqlStatement;
        if (sqlText.isWhiteSpace()) {
          out.print(sqlStatement);
        } else if (!sqlText.isPostParseRequired()) {

          // BODY OUT
          out.print(sqlStatement);
          //....
        }
      }
    }
}
分享到:
评论

相关推荐

    ibatis2.3.4.8.jar 和 ibatis-2.3.4.726.jar两个版本的下载

    1. 添加Ibatis的jar包到项目的类路径中,这正是提供的ibatis2.3.4.8.jar和ibatis-2.3.4.726.jar的作用。 2. 配置Ibatis的主配置文件(mybatis-config.xml),设置数据源、事务管理器等核心参数。 3. 创建SQL映射文件...

    ibatis-2.3.4.726.jar,ibatis-2.3.0.677.jar,ibatis-2.3.3.720.jar下载

    - **ibatis-2.3.0.677.jar**:这是早期的一个版本,可能相比2.3.4.726.jar缺少一些更新和优化。如果你的项目不需要最新的特性,且已经在使用这个版本并运行良好,通常没有必要升级。 - **ibatis-2.3.3.720.jar**:...

    ibatis-sqlmap-2.3.4.726-sources.jar.zip_birth84v_cutting1v2_ibat

    这部分信息表明我们正在探讨的是iBatis SQLMap的2.3.4.726版源码,其中"birth84v"和"cutting1v2"可能是特定的版本标识或开发代号,而"ibat"可能是对iBatis的简称。源码jar文件是开发者了解框架内部结构、学习和调试...

    ibatis2.3.4.726增删改查源码实例

    在本实例中,"ibatis2.3.4.726增删改查源码实例" 提供了一个完整的基于Ibatis 2.3.4.726版本的开发案例,涵盖了数据库的基本操作,即增(INSERT)、删(DELETE)、改(UPDATE)和查(SELECT)。 首先,我们来了解...

    ibatis-2.3.4.726最新API chm格式

    ibatis-2.3.4.726最新API chm格式 非常好用

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    在这个2.3.4.726版本的源码中,我们可以深入理解iBATIS DAO的工作原理,并通过添加注释来帮助我们更好地掌握其实现细节。 首先,iBATIS DAO的核心概念是SQL Maps,它们定义了数据库操作的SQL语句,并将其映射到Java...

    ibatis-2.3.4.726官方最新开发包

    这个“ibatis-2.3.4.726官方最新开发包”包含了Ibatis框架的所有核心组件和文档,是进行Ibatis开发的重要资源。 首先,让我们深入了解一下Ibatis的主要特点: 1. **SQL映射**:Ibatis的核心是SQL映射文件,它允许...

    ibatis-2.3.4.726-src-源代码

    通过深入学习和分析iBatis 2.3.4.726的源代码,开发者可以更好地理解其工作原理,从而优化SQL执行效率,解决框架使用中遇到的问题,提升开发效率。同时,这也为转向MyBatis的学习提供了坚实的基础。

    spring3.0.3+ibatis2.3.4.7分页

    标题中的“spring3.0.3+ibatis2.3.4.7分页”指的是在Spring 3.0.3版本与iBATIS 2.3.4.7版本结合下实现的一种分页功能。这是一个常见的Java Web开发场景,其中Spring作为依赖注入和框架管理工具,iBATIS作为数据访问...

    ibatis2.3.4.726.jar

    ibatis2.3.4.726.jar ibatis2.3.4.726.jar ibatis2.3.4.726.jar ibatis2.3.4.726.jar

    ibatis-2.3.4.726.jar

    ibatis的JAR。如果想用ibatis没有这个JAR包是不行的

    ibatis-2.3.4.726_api_doc.CHM

    ibatis-2.3.4.726_api_doc.CHM ibatis-2.3.4.726_api_doc.CHM

    ibatis-2.3.4.726

    标题 "ibatis-2.3.4.726" 指的是一个特定版本的 iBATIS 数据库持久层框架,这是一个流行的开源项目,它为 Java 应用程序提供了数据库操作的简单方法。iBATIS 通过将 SQL 查询与业务逻辑分离,实现了灵活的数据访问...

    spring3.2.6+struts2.3.15+ibatis2.3.4.726例子及全部jar

    这是一个基于Java技术栈的Web应用示例,涵盖了Spring 3.2.6、Struts2 3.15和iBatis 2.3.4.726的集成使用。这个实例主要用于演示如何在实际项目中搭建和配置这三个框架,并实现基本的用户注册和登录功能。 **Spring ...

    ibatis-2.3.4.726 API文档

    ibatis-2.3.4.726 API文档

    Spring3.0.3 + ibatis-2.3.4.726简单例子

    自己学习时弄的一个测试例子,使用Spring3.0.3 + ibatis-2.3.4.726,增删查数据.只是个简单例子,高手请过. 1.先运行数据库,执行hsqldb\startServer.bat启动hsqldb数据库.已经有初始化数据. 2.打开Eclipse编译项目,前...

    oracle分页(ibatis-2.3.4.726.jar).rar

    在Java开发中,iBATIS作为一款流行的数据访问框架,其早期版本(如2.3.4.726)并未内置物理分页功能,而是依赖于SQL的逻辑分页,这在处理大量数据时可能会导致效率低下,因为逻辑分页会将所有结果集加载到内存中再...

    DAO-2.3.4.726

    总的来说,DAO-2.3.4.726作为iBATIS的一个版本,它在数据访问层提供了强大的功能和灵活性,帮助开发者更高效地处理数据库操作,同时保持代码的整洁和模块化。在实际项目中,合理利用iBATIS DAO可以显著提升开发效率...

    ibatis-sqlmap-2.3.4.741-sources.zip_4 3 2 1_ibatis-sqlm_ibatis-s

    描述中提到了针对iBATIS-2.3.4.726的改进,包括物理分页功能、支持缓存以及读写分离,同时还增加了对多种数据库的透明支持。 iBATIS SQLMap 是一个开源的Java框架,它将SQL语句与Java代码分离,提供了更灵活的...

Global site tag (gtag.js) - Google Analytics