ibatis实战之安插数据(使用外部参数映射)

ibatis实战之插入数据(使用外部参数映射)

ibatis实战之插入数据(使用外部参数映射)

----------

 

 

和使用内联参数映射相比,使用外部参数映射除了能提供相同的功能之外,还具有更好的性能并且ibatis能在加载它的同时对其进行验证。

下面给出一个使用外部参数映射的insert语句的示例,以下代码在功能上和前一个例子是一样的,只不过它使用的是外部参数映射而不是内联参数映射。

<parameterMap id="fullParameterMapExample" class="Account">
	<parameter property="accountId" jdbcType="NUMBER"/>
	<parameter property="username" jdbcType="VARCHAR"/>
	<parameter property="password" jdbcType="VARCHAR"/>
	<parameter property="memberSince" jdbcType="TIMESTAMP"/>
	<parameter property="firstName" jdbcType="VARCHAR"/>
	<parameter property="lastName" jdbcType="VARCHAR"/>
	<parameter property="address1" jdbcType="VARCHAR"/>
	<parameter property="address2" jdbcType="VARCHAR"/>
	<parameter property="city" jdbcType="VARCHAR"/>
	<parameter property="state" jdbcType="VARCHAR"/>
	<parameter property="postalCode" jdbcType="VARCHAR"/>
	<parameter property="country" jdbcType="VARCHAR"/>
	<parameter property="version" jdbcType="NUMBER"/>
</parameterMap>
<insert id="insertWithExternalInfo" parameterMap="fullParameterMapExample">
	insert into account(
		accountId,
		username,password,
		memberSince,
		firstName,lastName,
		address1,address2,
		city,state,postalCode,
		country,version
	)values(
		?,?,?,?,?,?,?,?,?,?,?,?,?
	)
</insert>

尽管上面的代码看上去并不比内联的短多少,但是当你包含更多的语句时,区别就会变得非常明显。使用外部参数映射不仅可以简化代码(因为你不需要为每个属性指定类型),而且集中式的维护意味着当你要修改参数映射时,只需要修改一次即可。