各种Parameter简介

<!--StartFragment-->

parameterClass

parameterClass 属性的值是 Java 类的全限定名(即包括类的包名)。 parameterClass 属性

是可选的,但强烈建议使用。它的目的是限制输入参数的类型为指定的 Java 类, 并优化框

架的性能。 如果您使用 parameterMap , 则没有必要使用 parameterClass 属性。 例如, 如果要

只允许 Java 类“ examples.domain.Product ”作为输入参数,可以这样作:

<statement id=”statementName” parameterClass=”examples.domain.Product”> 
	insert into PRODUCT values (#id#, #description#, #price#) 
</statement> 

 <!--StartFragment-->

重要提示: 虽然 2.0 向后兼容,但强烈建议使用 parameterClass (除非没必要)。通过

提供 parameterClass ,您可以获得更好的性能,因为如果框架事先知道这个类,就可以优化

自身的性能。

如果不指定 parameterClass 参数,任何带有合适属性( get/set 方法)的 Java Bean 都可

以作为输入参数。

<!--EndFragment-->

 

<!--StartFragment-->

parameterMap

属性 parameterMap 的值等于一个预先定义的 元素的名称。 parameterMap

属性很少使用,更多的是使用上面的 parameterClass inline parameter (接下来会讨论)。

注意! 动态 mapped statement 只支持 inline parameter ,不支持 parameter map

parameterMap 的基本思想是定义一系列有次序的参数系列,用于匹配 JDBC

PreparedStatement 的值符号。例如:

<parameterMap id=”insert-product-param” class=”com.domain.Product”> 
	<parameter property=”id”/> 
	<parameter property=”description”/> 
</parameterMap> 
<statement id=”insertProduct” parameterMap=”insert-product-param”> 
	insert into PRODUCT (PRD_ID, PRD_DESCRIPTION) values (?,?); 
</statement> 

 <!--StartFragment-->

上面的例子中, parameter map 的两个参数按次序匹配 SQL 语句中的值符号( ? )。因此,

第一个“ ? ”号将被“ id ”属性的值替换,而第二个“ ? ”号将被“ description ”属性的值替

换。 Parameter Map 及其选项将在以后详细讨论

 

<!--StartFragment-->

Inline Parameter 简介
现在简单介绍一下
inline parameter ,详细讨论见后面章节。 Inline parameter 可以嵌在

mapped statement 内部使用。例如:

<!--EndFragment-->

<statement id=”insertProduct” > 
	insert into PRODUCT (PRD_ID, PRD_DESCRIPTION) 
	values (#id#, #description#); 
</statement> 

 <!--StartFragment-->

以上例子中, 内嵌的参数是 #id# #description# 。 每个参数代表一个 Java Bean 属性, 用

于给 SQL 语句中相应的位置赋值。 上面例子中, Product 对象的 id description 属性的值将

会替换 SQL 语句中相应的符号。 因此, 对于 id=5 description= dog ’的 Product 对象, SQL

语句变为:
insert into PRODUCT (PRD_ID, PRD_DESCRIPTION)
values (5, ‘dog’);

<!--EndFragment-->

 

<!--EndFragment--><!--EndFragment-->

你可能感兴趣的:(parameter)