在sqlMap.xml文件中写了条语句,但是我需要传递多个参数,查看一下ibatis自动生成的XML文件可以了解到,只需要传递一个对象进来,然后使用##去取对象的属性即可。
如
<select id="selectStudentByIdAndName" resultClass="Student" parameterClass="Student">
select * from student where sid=#sid# and sname=#sname#
</select>
但我使用的对象属性值非常多,我不希望每次进来都需要创建一个空对象,然后将我需要传递的两个值赋到对象中,然后将一个对象作为参数来传递。像在Hibernate里就可以通过一个数组来传递参数,相信ibatis里也会有相应的操作的,事实也是如此。
XXXsqlMap.xml
<parameterMap class="java.util.HashMap" id="parameterMap">
<parameter property="signDate"/>
<parameter property="gfVikSponsorsId"/>
</parameterMap>
<select id="totalVikSponsorsTotalAmountOnDate" resultClass="java.math.BigDecimal" parameterMap="parameterMap">
SELECT SUM(TOTAL_AMOUNT) FROM GF_CONTRACTVIK WHERE DATEDIFF(DY, SIGN_DATE, ?) >= 0 AND GF_VIK_SPONSORS_ID = ?;
</select>
然后在DAO方法里将参数放到Map里传递过来就OK啦!!
需要注意的地方:Map的声明需要在语句申请的前面,不然查找不到
分享到:
相关推荐
ibatis支持多种参数处理方式,包括基本类型、复杂对象、列表和Map等。参数可以通过`#{}`语法在SQL语句中引用,ibatis会自动进行类型转换和值绑定。 ### resultMap `resultMap`是ibatis中一个重要的概念,用于描述...
在Ibatis中,复杂查询通常涉及到多个表的联接、条件动态拼接、子查询以及各种数据类型的处理。文档"Ibatis复杂查询语句.doc"所展示的查询语句就是一个很好的例子,展示了Ibatis如何处理复杂的数据库操作。接下来,...
多表查询通常涉及到 JOIN 操作,例如内连接(INNER JOIN)、左连接(LEFT JOIN)等,这些操作可以帮助我们从多个相关联的表中获取所需的数据。 #### 三、多表查询示例分析 根据提供的部分代码,我们可以看到一个多...
这样在多个查询中引用同一段代码时,只需指定引用ID即可。 ### 4. `left join`、`right join`、`inner join` 在多表查询中,我们需要使用JOIN操作连接不同的表。iBatis支持`left join`、`right join`和`inner join`...
5. `<foreach>`标签:用于迭代集合,如数组、列表等,生成多个相同结构的子句。比如,用于IN查询: ```xml (" separator="," close=")"> #{item} ``` 在实际使用中,我们还需要注意以下几点: - 动态SQL语句中的...
**知识点2:** 多条件组合查询是指在一个查询语句中同时使用多个条件,以满足更复杂的查询需求。 1. **使用 `<dynamic>` 标签进行多条件组合查询:** - `<dynamic>` 标签允许根据传入的参数动态生成 SQL 语句。 -...
- 避免在`WHERE`子句中使用多个条件或`OR`操作符,而是应该使用`IN`操作符或者`UNION ALL`合并多个查询。 3. Struts、Spring与Ibatis的集成: - Struts作为MVC框架,主要负责视图与控制器的交互。在项目中,`...
当调用该方法时,iBatis会自动处理SQL的执行和结果。 2. 读取(Read):读取数据通常使用SELECT语句。同样,在XML文件中定义查询,Java接口中声明对应的方法。返回的结果可以映射到Java对象中,支持多对一、一对多等...
对于更复杂的情况,如需要插入一个包含多个属性的对象到数据库,iBATIS提供了`<insert>`标签来实现。在该标签内部,可以通过`#propertyName#`的形式引用Java对象的属性,其中`propertyName`对应Java对象的属性名。...
在SQL查询中,`AND` 和 `OR` 是用来连接两个或多个条件的关键字。`AND` 关键字用于组合条件,并且只有当所有组合的条件都被满足时,才会返回相应的行;而 `OR` 关键字则只要其中一个条件被满足就会返回相应的行。 ...
比如,你可以根据参数是否为空来决定是否包含某个条件,这在处理模糊查询时尤其有用。 标签"源码"和"工具"暗示了这篇博客可能深入讲解了iBatis的实现细节,并且提供了一些实用技巧。通过阅读博客全文,你可能会学习...
Ibatis 支持基于多个条件的复杂查询。在 `select` 标签中,你可以使用 `<if>`、`<choose>`、`<when>`、`<otherwise>` 和 `<where>` 等标签来构建动态 SQL,根据传入参数的不同组合生成不同的 SQL 语句。 5. **单...
ResultSetHandler处理查询结果,将数据库结果集映射为Java对象。在`org.apache.ibatis.executor.resultset.ResultSetHandler`中,ResultMap被用来定义字段与Java对象属性的映射关系。ResultMap不仅支持简单的列名...
Ibatis 的一大亮点是支持动态 SQL,开发者可以在 SQL 映射文件中使用条件判断、循环等结构,使得 SQL 语句能够根据传入参数的不同而变化。 **4. MyBatis vs Ibatis** 尽管 Ibatis 在后期演进成了 MyBatis,两者在...
iBATIS是一个由Clinton Begin创建,目前由Apache基金会支持的持久化框架,它专注于数据库查询的简化,尤其在JDBC编程方面提供了极大的便利。相对于全自动化ORM解决方案如Hibernate,iBATIS被称为“半自动化”ORM实现...
iBatis,全称为MyBatis iBatis,是一个基于Java的持久层框架,它简化了数据库与应用程序之间的交互,避免了直接编写大量的SQL语句和手动处理结果集。在这个过程中,iBatis提供了一个SQL映射框架,允许开发者将SQL...
总结起来,Ibatis 是一个强大且灵活的持久层框架,它允许开发者以更加直观的方式处理数据库操作,降低了开发难度,提高了代码的可读性和可维护性。无论是在小型项目还是大型企业级应用中,Ibatis 都能发挥出其独特的...
Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将注意力集中在编写SQL语句上,而无需关注JDBC代码的编写。Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的...
Ibatis的核心理念是“SQL就是SQL”,它允许开发者自由地编写SQL查询,避免了ORM框架在处理复杂SQL时的局限性。 在Ibatis中,SQL语句被定义在XML配置文件或注解中,这使得SQL逻辑与业务逻辑解耦,提高了代码的可读性...
此外,iBatis还支持Map迭代,当查询结果中的列名与Java对象的属性不完全匹配,或者需要处理多表联查结果时,Map迭代非常有用。例如: ```java List, Object>> maps = sqlSession.selectList(...