`

ibatis Tips之parameterMap

阅读更多

转载:http://xulongfa.iteye.com/blog/423576

 

parameterMap
属性parameterMap的值等于一个预先定义的<parameterMap>元素的名称。parameterMap属性很少使用,更多的是使用上面的parameterClass和inline parameter(接下来会讨论)。
注意!动态mapped statement只支持inline parameter,不支持parameter map。
parameterMap的基本思想是定义一系列有次序的参数系列,用于匹配JDBC PreparedStatement的值符号。例如:

Xml代码  收藏代码
  1. <parameterMap class="com.ibatis.dataobject.Product" id="insert-product-param" >  
  2.         <parameter property="id"/>  
  3.         <parameter property="description"/>  
  4.         <parameter property="price"/>       
  5. </parameterMap>  
  6. <statement id="insertProduct-useParaMap" parameterMap="insert-product-param">  
  7.         <![CDATA[insert into t_product(prd_id,prd_description,prd_price) values(?,?,?)]]>  
  8. </statement>  

 上面的例子中,parameter map的两个参数按次序匹配SQL语句中的值符号(?)。因此,第一个“?”号将被“id”属性的值替换,而第二个“?”号将被“description”属性的值替换。

 

DAO实现类:

Java代码  收藏代码
  1. public boolean addProductUseParaMap(Product product) {  
  2.         init();  
  3.         Object obj = null;  
  4.         boolean flag = true;  
  5.         try {  
  6.             obj = sqlMapClient.insert("insertProduct-useParaMap", product);  
  7.         } catch (SQLException e) {  
  8.             flag = false;  
  9.             e.printStackTrace();  
  10.         }  
  11.         return flag;  
  12. }  
 

测试类:

Java代码  收藏代码
  1. Product product = new Product();  
  2. product.setId(2);  
  3. product.setDescription("football");  
  4. product.setPrice(106.99D);  
  5. productDao.addProductUseParaMap(product);  
  6. product = (Product)productDao.getProduct(new Integer(2));  
  7. System.out.println(product);  

 

 具体的parameterMap:

Xml代码  收藏代码
  1. <parameterMap id=”parameterMapName”   [class=”com.domain.Product”]>  
  2.         <parameter property =”propertyName”   
  3.                 [jdbcType=”VARCHAR”]  
  4.                 [javaType=”string”]  
  5.                 [nullValue=”NUMERIC”]   
  6.                 [null=”-9999999”]  
  7.         />  
  8.        <parameter…… />  
  9.        <parameter …… />  
  10. </parameterMap>  
Class属性是可选的,Class属性必须是JavaBean或Map实列,Class属 性虽是可选的,但推荐大家指定,
Class属性可以用来验证传入的参数的合法性及优化查询

<parameter>元素:

1.property

    属性property是传给statement的参数对象的Java Bean属性名称。该名称根据需要,可以在statement中多次出现(即在SQL语句SET子句中被更新的属性,也可以作为条件出现在WHERE子句中)。

 

2.jdbcType  

    属性jdbcType用于显式地指定给本属性(property)赋值的数据库字段的数据类型。

    注意! 大多数JDBC Driver只有在字段可以为NULL时需要指定jdbcType属性。因此,对于这些Driver,只是在字段可以为NULL时才需要指定type属性。

    注意! 当使用Oracle Driver时,如果没有给可以为NULL的字段指定jdbcType属性,当试图给这些字段赋值NULL时,会出现“Invalid column type”错误。

 

3.javaType
     属性javaType用于显式地指定被赋值参数Java属性的类名。

 

4.nullValue (要特别关注)

     属性nullValue的值可以是对于property类型来说任意的合法值,用于指定NULL的替换值。就是说,当Java Bean的属性值等于指定值时,相应的字段将赋值NULL。这个特性允许在应用中给不支持null的数据类型(即int,double,float等)赋 值null。当这些数据类型的属性值匹配null值(即匹配-9999)时,NULL将代替null值写入数据库。

</parameter>元素

 

 

注意! parameterMap并不自动地绑定到特定的Java类。因此在上面的例子中,任何拥有“id”和“description”属性的Java Bean对象,都可以作为parameterMap的输入。如果需要将输入绑定到特定的Java类,可以使用mapped-statement的 resultClass属性。
注意! Parameter Map的名称(name)局部的,只在定义它的SQL Map XML文件中有效。不过,加上SQL Map的名称(即在<sqlMap>根元素中的名称)作为前缀,您可以在另一个SQL Map XML文件中引用它。例如,要在另一个文件中引用以上的parameterMap,可以使用名称“Product.insert-product- param”。

 

 

分享到:
评论

相关推荐

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

    此外,iBATIS还提供了一些辅助工具,如`ParameterMap`用于管理SQL语句的输入参数,`ResultMap`用于处理查询结果的映射,以及`Cache`机制,用于缓存查询结果,提高系统性能。这些工具类使得开发者能够更方便地进行...

    ibatis api 帮助文档+IBATIS 开发文档

    **IBATIS API 帮助文档与IBATIS开发文档详解** IBATIS,一个由iBATIS公司开发的开源持久层框架,是Java世界中广泛使用的数据访问接口(DAO)工具。它允许开发者将SQL语句直接写在XML配置文件中,实现了SQL与Java...

    ibatis实战之基础环境搭建(源码).zip

    在本教程中,我们将深入探讨如何搭建用于实战的iBatis基础环境,同时结合源码进行学习。iBatis是一个优秀的、开源的SQL映射框架,它能够将Java应用程序中的数据库操作与SQL语句分离,使得开发人员可以更加专注于业务...

    ibatis api,ibatis文档,ibatis说明文档

    5. ParameterMap和ParameterHandler:它们负责参数的设置和处理,ParameterMap代表了SQL参数的映射关系,而ParameterHandler则将Java对象转换为SQL语句中的参数。 6. ResultMap和ResultSetHandler:ResultMap定义了...

    ibatis总结 ibatis ibatis ibatis ibatis

    Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...

    深入分析 iBATIS 框架之系统架构与映射原理

    **深入分析 iBATIS 框架之系统架构与映射原理** iBATIS 是一个优秀的持久层框架,它允许开发者将 SQL 语句与 Java 代码分离,从而简化了数据库访问层的开发工作。本篇文章将深入探讨 iBATIS 的核心系统架构以及其...

    ibatis资料ibatis资料

    4. **了解MyBatis**: 虽然iBATIS已被MyBatis取代,但两者有很多相似之处。了解MyBatis的新特性,如注解支持和更强大的动态SQL,可以帮助你更好地迁移和升级项目。 5. **社区资源**: 利用互联网上的论坛、博客和问答...

    Ibatis 入门经典 实例

    1. 参数映射:通过 `&lt;parameterMap&gt;` 和 `&lt;parameter&gt;` 标签将方法参数映射到 SQL 语句中的占位符。 2. 结果映射:使用 `&lt;resultMap&gt;` 定义结果集映射规则,可以进行复杂的列名和属性名映射,支持关联对象映射。 六...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得开发者能够将SQL语句与Java代码分离,从而更好地管理数据库操作。Ibatis的出现,解决了传统JDBC中手动编写SQL和结果集映射的繁琐工作,...

    Ibatis

    1.3 参数映射:通过 `&lt;parameterMap&gt;` 和 `&lt;parameter&gt;` 元素,可以指定 SQL 语句中的参数类型和值,支持简单的类型和复杂的对象映射。 1.4 结果集映射:通过 `&lt;resultMap&gt;` 元素,定义了 SQL 查询结果如何映射到 ...

    iBATIS教程之快速入门浅析

    iBATIS 是一款轻量级的Java持久层框架,它主要负责对象关系映射(Object-Relational Mapping,简称O/R Mapping),使得开发者可以将关注点集中在业务逻辑上,而无需过多地处理数据库操作的细节。与Hibernate等其他...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    《深入解析iBatis源码》 iBatis,一个优秀的Java持久层框架,以其轻量级、灵活的特性在众多ORM(Object-Relational Mapping)框架中独树一帜。iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,...

    ibatis plugin用户指南

    5. **自动生成select语句**:在标签处,按Alt+Enter选择Generate result for resultMap or resultClass,插件会根据parameterClass或parameterMap自动生成对应的select语句。 6. **SqlMapClient方法调用的代码提示*...

    iBATIS 级联iBATIS 级联

    iBATIS 级联iBATIS 级联iBATIS 级联

    ibatis

    2. 参数映射:Ibatis 提供了参数映射机制,可以通过`&lt;parameterMap&gt;`和`&lt;parameter&gt;`标签将Java对象的属性值映射到SQL语句的参数。同时,它还支持简单类型、复杂类型(如Map或自定义对象)的参数传递。 3. 结果映射...

    经典开源插件之ibatis

    ### 经典开源插件之ibatis #### 概述 ibatis(现称为MyBatis)是一款优秀的持久层框架,它将SQL语句与Java代码分离,支持自定义SQL查询、存储过程以及高级映射等功能。ibatis的灵活性使得开发者能够通过简单的XML...

    ibatis 开发指南 2004

    5. **参数映射**:讲解如何通过`&lt;parameterMap&gt;`和`&lt;param&gt;`标签进行参数绑定,支持基本类型、对象以及复杂类型的参数传递。 6. **结果集映射**:探讨如何使用`&lt;resultMap&gt;`定义结果集映射规则,包括一对一、一对多...

    ibatis的dtd文件

    此外,还有`&lt;resultMap&gt;`用于定义结果集映射,`&lt;parameterMap&gt;`用于参数对象的映射等,这些元素都是通过`sql-map-2.dtd`定义的。 其次,`sql-map-config-2.dtd`则是Ibatis的SQL映射配置文件的DTD,它定义了整个...

    ibatis 之分页

    本文将深入探讨Ibatis实现分页的相关知识点,并基于提供的标签“源码”和“工具”,分享如何在实际项目中运用Ibatis进行分页处理。 首先,了解Ibatis的基本概念。Ibatis是由Apache基金会维护的一个开源项目,它是一...

Global site tag (gtag.js) - Google Analytics