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