`

ibatis全动态多查询

阅读更多

<select id="getdataofftable" parameterClass="map"  resultClass="string" >
         SELECT $displayColum$ as result
       FROM $tablename$
        WHERE  $primaryColumn$ =#fielddata#
     </select>

java:

if(componentsProperties != null && componentsProperties.size() > 0){
   for(ComponentsProperty componentsProperty: componentsProperties){

...................      
      Map param = new HashMap();
      param.put("displayColum", displayColum);
      param.put("tablename", ftablename);
      param.put("primaryColumn", primaryColumn);
      param.put("fielddata", valueId);
      value = (String) getSqlMapClientTemplate().queryForObject("getdataofftable", param);

....................
      }
  }

当查询多组动态的表,动态的列的值的时候如不使用“as result”,刚会报错,

org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:  
--- The error occurred in config/Components.xml. 
--- The error occurred while applying a result map. 
--- Check the getdataofftable-AutoResultMap. 
--- Check the result mapping for the 'SUPPLIER_NAME' property. 
--- Cause: java.sql.SQLException: 列名无效

这是因为每次的查询结果都会以第一次查询时displayColum的值'SUPPLIER_NAME'来返回,但第二次后查询的结果已不再是该列名就会报错,故要把它们返回列指定为相同名称:as result;

分享到:
评论

相关推荐

    ibatis动态多条件组合查询

    ibatis动态多条件组合查询 实例 说明

    ibatis_动态查询条件

    iBatis 动态查询条件详解 iBatis 是一个基于 Java 的持久层框架,它提供了动态查询条件的功能,可以根据不同的条件生成不同的 SQL 语句。在 iBatis 中,动态查询条件是通过 `&lt;dynamic&gt;` 元素来实现的,该元素可以...

    ibatis的动态查询

    以上内容详细介绍了 ibatis 中动态查询的基本原理及具体实现方法,包括模糊查询、多条件组合查询以及使用 Map 作为参数的高级用法。这些知识点对于深入理解 ibatis 的动态查询机制非常重要,可以帮助开发者更高效地...

    ibatis多表查询

    在Ibatis中,多表查询是一项重要的功能,它允许我们处理复杂的数据库操作,例如一对多、多对一或一对一的关系。在这个例子中,我们将探讨如何使用Ibatis进行一对多的多表查询,以`book`和`user`两个表为例。 首先,...

    ibatis动态SQL标签用法

    iBatis动态SQL标签用法 iBatis是Java持久层框架,提供了动态SQL标签来实现动态查询。动态SQL标签可以根据不同的条件生成不同的SQL语句,从而提高查询效率和灵活性。 动态SQL片段 iBatis提供了动态SQL片段的功能,...

    解决IBatis缓存动态字段问题

    ### 解决IBatis缓存动态字段问题 #### 背景与问题描述 在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为...

    操作数据库 iBATIS查询

    iBATIS推荐的写法是在SQL字符串中动态添加`%`,如下所示: ```xml SELECT * FROM t_stu WHERE s_name LIKE '%' || #name# || '%' ``` 在这个例子中,`#name#`代表传入的参数,而`'||'`是字符串拼接操作符。这样...

    动态ibatis查询语句配置

    首先,我们需要理解Ibatis动态SQL的基本概念。在Ibatis的XML映射文件中,我们可以通过条件标签来构建动态SQL。这些标签包括`&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`, `&lt;where&gt;`, `&lt;set&gt;`, `&lt;foreach&gt;`等。它们...

    ibatis多表查询过程

    通过以上讲解,我们了解到在iBatis中进行多表查询的基本方法和策略,包括如何设置映射关系、使用JOIN操作、动态SQL以及结合Spring进行事务管理。实际开发中,根据具体需求灵活运用这些技巧,能够有效提高代码质量和...

    Ibatis查询语句里,可以使用多表查询

    ### iBatis 多表查询知识点详解 #### 一、iBatis简介 iBatis 是一款优秀的持久层框架,它将 SQL 映射到 Java 对象,简化了 JDBC 编程过程中的繁琐操作,提高了开发效率。iBatis 的核心功能包括 SQL 映射、动态 SQL...

    Ibatis查询Id列表.doc

    根据提供的文档信息,我们可以深入探讨Ibatis框架中的一个具体应用场景:如何通过动态SQL查询特定条件下的ID列表。本文将从以下几个方面进行详细解析: ### 一、Ibatis简介 Ibatis是一个基于Java的持久层框架,它...

    ibatis中使用安全的拼接语句,动态查询,大于、小于、等于.doc

    iBatis 中使用安全的拼接语句、动态查询、大于、小于、等于 iBatis 是一个流行的持久层框架,提供了许多强大的功能来帮助开发者构建高效、安全的数据库交互应用程序。本文将详细介绍 iBatis 中使用安全的拼接语句、...

    Ibatis复杂查询语句.doc

    在Ibatis中,复杂查询通常涉及到多个表的联接、条件动态拼接、子查询以及各种数据类型的处理。文档"Ibatis复杂查询语句.doc"所展示的查询语句就是一个很好的例子,展示了Ibatis如何处理复杂的数据库操作。接下来,...

    IBATIS动态查询语句.doc

    本文将深入探讨IBATIS动态查询语句的运用,解析其背后的逻辑与机制,以及如何利用这些特性来增强查询的灵活性与安全性。 ### IBATIS动态查询基础 IBATIS,现在更广为人知的名字为MyBatis,是一种半自动映射的持久...

    ibatis 用HashMap解决resultClass映射

    与 Hibernate 等全 ORM 框架不同,ibatis 提供了一种半自动化的数据访问层解决方案,更加灵活且易于控制。 #### 2. 为什么使用 HashMap? 当数据库表结构频繁变化或者某些场景下无法提前确定表的列名和列数时,...

    ibatis 一对多

    在实际应用中,我们还可以通过动态SQL来灵活控制一对多的加载,例如延迟加载(lazy loading)或按需加载。`&lt;if&gt;` 和 `&lt;choose&gt;` 等标签可以用来条件性地执行不同的SQL片段,以优化性能。 总的来说,`iBatis` 的一对...

    ibatis做连接查询 .doc

    注意,iBatis还支持动态SQL,这意味着你可以在XML配置文件中使用`&lt;if&gt;`、`&lt;choose&gt;`、`&lt;when&gt;`等标签来根据条件动态构建SQL语句,这对于复杂的连接查询非常有用。 总的来说,iBatis提供了强大的SQL定制能力,使得...

    iBatis条件查询

    在描述中提到的"按条件查询",就是通过iBatis动态构建SQL语句来实现的。开发者可以在SQL Map中定义一个模板SQL,然后在Java代码中传入参数,iBatis会自动替换SQL中的占位符,生成实际的查询语句。这种方式既避免了硬...

    iBatis的动态SQL语句

    ### iBatis中的动态SQL语句详解 ...同时,动态SQL的使用也使得iBatis成为处理复杂数据查询的理想选择之一。希望本文能帮助开发者更好地理解和掌握iBatis框架中的动态SQL技术,从而提升开发效率和项目质量。

    ibatis教程_查询指定id的单个对象

    本教程聚焦于如何使用Ibatis查询指定ID的单个对象,这对于日常的数据检索工作尤为重要。 首先,理解Ibatis的基本架构。Ibatis不是一个完整的ORM(对象关系映射)框架,而是介于SQL和Java之间的桥梁,允许开发者编写...

Global site tag (gtag.js) - Google Analytics