`
shukuiyan
  • 浏览: 413993 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ibatis中update参数为Map的使用方式

阅读更多

使用ibatis,如果要更新表记录,一般常用的做法就是,查找出记录,然后修改部分字段,进行update操作.

例如:

User  user =  userDAO.findById(1);
user .setName("zhangsan");
user DAO.update( user );

 

这种是最常用的方法.在很多应用场景下完全没有问题.
但是,如果user表中存在一个或者多个text(或者blob)字段.难道仅仅为了更新一个name字段,需要重新update那些本不需要更新的text/blob字段吗?

 

人们又想出了一个办法,参数采用map,把需要更新的字段put到map中,

 

应用方法如下: 
ibatis映射文件sqlmap.xml中: 
<update id="update" parameterClass="java.util.HashMap"> 
UPDATE TAB SET EDITION=#ID# WHERE USERID=#USERID# 
</update> 
在我们要调用sql查询语句的java方法中有: 
Map<String, Object> parameter = new HashMap<String, Object>(); 
parameter.put("USERID", userId); 
parameter.put("ID", edition); 
try { 
sqlMapClient.update("mysqlibatis.update", parameter); 
} catch (SQLException e) { 
return false; 


在此处对上面用到的参数作说明,sqlMapClient.update("mysqlibatis.update", parameter);中的"mysqlibatis"是ibatis映射文件的 
名称,"update"是<update>标签的id,而parameter是传入的map参数名称,并且parameter参数中必须要有和 
<update id="update" parameterClass="java.util.HashMap"> 
UPDATE TAB SET EDITION=#ID# WHERE USERID=#USERID# 
</update> 
中对应的key值,如上,就是在parameter中要有ID和USERID。并且,<update>标签的parameterClass的 
一定要是"java.util.HashMap".向上面这样做就减轻了我们的工作量,不用在ibatis中写parameterMap的映射了。

 

 

 

参考:http://duqiangcise.iteye.com/blog/300459

http://www.blogjava.net/stone2083/archive/2008/06/26/210969.html

分享到:
评论

相关推荐

    ibatis应对批量update

    为了解决这个问题,ibatis(现已更名为MyBatis)提供了一种支持批量更新的机制,能够显著提高数据处理的速度。 #### 批量Update背景与问题 在实际应用中,经常会遇到需要批量更新数据库中的数据的情况,例如:商品...

    ibatis教程 输入参数详解

    ibatis支持多种参数处理方式,包括基本类型、复杂对象、列表和Map等。参数可以通过`#{}`语法在SQL语句中引用,ibatis会自动进行类型转换和值绑定。 ### resultMap `resultMap`是ibatis中一个重要的概念,用于描述...

    ibatis的sql-map dtd

    在Ibatis中,`sql-map`和`sql-map-config`是两个重要的XML配置文件,它们使用DTD(Document Type Definition)来定义其结构和规则。 DTD是XML文档类型定义,它定义了XML文档的合法构建块,包括元素、属性、实体等,...

    Ibatis资料ibatai sql map iBATIS使用$和#的一些理解

    在iBATIS中,有两种主要的方式来处理这些参数:使用`$`和`#`。这两种方式在不同的场景下有不同的效果。 首先,让我们来看看如何通过HashMap传递SQL参数。当SQL Map接口只能接受一个参数,但我们需要传递多个参数时...

    ibatis list

    `&lt;iterate&gt;`标签是iBatis中用于循环遍历集合的一种机制,它允许你在SQL语句中动态生成参数列表,这对于批量操作(如批量插入、更新或删除)尤为重要。该标签支持多种属性,包括`property`、`conjunction`、`open`、`...

    IBatis简单使用

    1. **SQL映射**: IBatis的核心是SQL Map配置文件,其中包含了SQL语句及其执行方式。它可以将Java对象与数据库表中的记录进行映射,方便地实现增删改查操作。 2. **动态SQL**: IBatis支持动态SQL,这意味着开发者...

    ibatis demo,ibatis例子,ibatis示例

    5. **参数映射**:Ibatis支持多种方式传递参数,如Map、POJO对象、注解等。例如,使用`@Param`注解可以指定参数名,或者在XML中使用`#{paramName}`来引用参数。 6. **结果映射**:结果映射允许我们将查询结果自动...

    ibatis 使用手册

    开发指南会深入讲解如何初始化iBatis环境,包括设置配置文件、创建SqlMap文件、设计Mapper接口以及如何在Java代码中使用这些组件。此外,还会介绍如何处理结果集、执行批量操作、使用缓存机制等高级特性。 **iBatis...

    ibatis简易使用 ibatis简易使用 ibatis简易使用

    以下是对iBATIS简易使用的详细解释: 1. **环境准备**: - **jar文件**:iBATIS框架运行需要依赖一些库文件,包括`log4j`用于日志记录,`ibatis`核心库,以及`jdbc`驱动,这些都需要添加到项目的类路径中。 - **...

    ibatis 中文api

    Ibatis支持多种参数映射方式,如简单类型、Map、POJO对象等,通过`#{}`占位符进行绑定。 6. **结果映射**:Ibatis可以自动将查询结果转换为Java对象。在映射文件中定义`resultMap`,指定字段与Java属性的对应关系,...

    Ibatis

    2.3 参数绑定:调用 SqlSession 的方法时,传入参数对象或 Map,Ibatis 会自动将参数映射到 SQL 语句中。 2.4 结果处理:查询操作返回的结果会被自动映射到 Java 对象,更新操作返回受影响的行数。 **3. 动态 SQL*...

    iBATIS 三个版对比

    - **iBATIS v3**:改为使用`#{id}`的形式。 参数表示方式的变化,提高了参数的安全性和易用性。 #### sqlMap API的异同 - **执行对象:** - **iBATIS v1**:使用`SqlMap`作为执行对象。 - **iBATIS v2**:...

    sql-map-2.dtd和sql-map-config-2.dtd

    总结来说,"sql-map-2.dtd"和"sql-map-config-2.dtd"是Ibatis 2.x版本中非常关键的组件,它们为XML配置文件提供了结构化规则,使得开发人员能够编写出合法且易于维护的SQL映射文件和全局配置文件。理解并正确使用...

    ibatis的dtd文件

    首先,`sql-map-2.dtd`是Ibatis的SQL映射文件的DTD,它规定了如何定义SQL语句、结果映射、参数映射等元素。例如,`&lt;select&gt;`标签用于定义一个查询语句,可以包含SQL语句和其返回的结果集映射;`&lt;insert&gt;`标签则用于...

    ibatis plugin用户指南

    iBatis Plugin作为IntelliJ IDEA中的得力助手,它有效地减轻了开发者在使用iBatis框架时的负担,提升了开发效率。从代码生成到智能提示,每一个细节都体现了插件对iBatis开发流程的深度理解和支持。对于那些习惯于...

    ibatis dtd文件

    在IT行业中,数据库操作是应用程序不可或缺的部分,而Ibatis作为一个优秀的Java持久层框架,它提供了一种简单且灵活的方式来处理数据库交互。DTD(Document Type Definition)文件在此扮演着至关重要的角色,它定义...

    ibatis jar

    2. 参数映射:通过`&lt;select&gt;`、`&lt;insert&gt;`、`&lt;update&gt;`和`&lt;delete&gt;`标签,iBatis自动将Java对象的属性值绑定到SQL参数,简化了参数传递。 3. 结果映射:iBatis能够自动将查询结果转换为Java对象,支持一对一、一对...

Global site tag (gtag.js) - Google Analytics