SQL Map XML 映射文件。

来源:互联网 发布:豆腐软件 编辑:程序博客网 时间:2024/05/21 10:26

这里是一个mapped statement较复杂的例子,使用了更多的特性。

<sqlMap id = "Product">

  <cacheModel id = "ProductCache"  type = "LRU">

<flushInterval hours = "24" />

</property name = "size" value = "1000" />

</cacheModel>


<typeAlias alias = "product" type= "com.ibatis.example.Product" / >


<parameterMap id = "productParam"  class = "product">

<parameter property = "id" />

</parameterMap>


<resultMap id = "productResult" class = "product">

<result property = "id" column = "PRD_ID" />

<result property = "description" column = "PRD_DESCRIPTION" />

</resultMap>


<select id = "getProduct" parameterMap = "productParam" resultMap = "productResult" cacheModel = "product-cache">

select * from PRODUCT where PRD_ID = ?

</select>

</sqlMap>


太麻烦了?虽然框架为您做了很多工作,为了完成一个简单的查询操作,依然需要做很多。别担心,下面是一个简洁版本。

<sqlMap id = "Product">

<select id = "getProduct" parameterClass = "com.ibatis.example.Product" resultClass = "com.ibatis.example.Product">

select 

PRD_ID as id,

PRD_DESCRIPTION as description

from PRODUCT

where PRD_ID = #id#

</select>

</sqlMap>

但是简洁版本的行为和前一个声明的行为不太一样。首先,简洁版本没有定义缓存,因此每一个请求都要读取数据库。其次,简洁版本使用了框架的自动映射特性,这将带来一些副作用。但是这两者在Java代码中执行方式完全一致,因此您可是可以先使用一个简单的方案,灯将来需要时再换成更好地版本。首先应用最简单的方案,是很多现代方法学的最佳实践。

注意一个SQL Map XML映射文件可以包含任意多个Mapped Statement,Parameter Map 和 Result Map。按照它们之间的逻辑关系,为您的应用合理的组织Mapped Statement,Parameter Map和Result Map。

注意,SQL Map的名称是全局性地,在所有的SQL Map文件中名称必须是唯一的。

原创粉丝点击