iBATIS第二部分Mapped Statements

映射声明可以包含任何的SQL声明,并且可以使用参数映射与结果映射做为输入和输出。 (存储过程是一种特殊形式的声明)

 

如果情况很简单,映射声明可直接引用参数和结果类。映射声明通过引用缓存模型元素可以支持缓存。下面的示例显示了元素的声明语法。

Example 3.3. Statement element syntax

<statement id="statement.name"
  [parameterMap="parameterMap.name"]
  [parameterClass="alias"]
  [resultMap="resultMap.name"]
  [resultClass="class.name|alias"]
  [listClass="class.name|alias"]
  [cacheModel="cache.name"]
  [extends="statement.name"]
>

  select * from Products where Product_Id = [?|#propertyName#]
  order by [$simpleDynamic$]

</statement>

在例3.3中,[]部分是可选的,有些选项是互相排斥的。像例3.4这样简单的声明是完全合法的。

<statement id="InsertTestProduct" >
  insert into Products (Product_Id, Product_Description) values (1, "Shih Tzu")
</statement>

例3.4显然是不可能的,除非你正在运行一个测试。但它确实表明,您可以使用iBATIS去执行任意SQL语句。更有可能的是,您将使用对象映射中的参数映射和结果映射功能

 

3.3.1声明类型

这个<statement>元素包含了可以被使用的所有类型的SQL声明。通常使用个更具体的声明类型的元素是个好注意,用一个更具体的声明类型的元素可以提供更好的错误检查,甚至更多的功能 (例如,插入语句可以返回一个数据库生成的键)3.1概括了声明类型的元素及其支持的属性和功能。

 

Statement ElementAttributesChild ElementsMethods
<statement>
id 
parameterClass 
resultClass 
listClass
parameterMap 
resultMap 
cacheModel
All dynamic elements
Insert 
Update 
Delete 
All query methods
<insert>
id 
parameterClass 
parameterMap
All dynamic elements
<selectKey> 
<generate>
Insert 
Update 
Delete 
<update>
id 
parameterClass 
parameterMap
extends
All dynamic elements 
<generate>
Insert 
Update 
Delete
<delete>
id 
parameterClass 
parameterMap
extends
All dynamic elements 
<generate>
Insert 
Update 
Delete
<select>
id 
parameterClass 
resultClass 
listClass
parameterMap 
resultMap 
cacheModel
extends
All dynamic elements 
<generate>
All query methods
<procedure>
id 
parameterMap 
resultClass 
resultMap
cacheModel
All dynamic elements 
Insert 
Update 
Delete 
All query methods

 

 

 

 3.3.3 the SQL

如果您不使用存储过程,在一份声明中最重要的部分,类型元素是SQL。您可以使用任何对您的数据库系统合法的SQL语句,由于iBATIS的SQL贯穿于(ADO.NET)标准,所以可以使用任何声明像不使用iBATIS时一样,

你可以使用你的数据库系统支持的任何功能,甚至多条语句,只要您的驱动程序或提供商持它们。
如果标准,静态SQL是不够的,iBATIS的可以帮助你建立一个动态SQL语句。如需有关动态SQL的3.9节
3.3.3.1。重用的SQL片段
当写SqlMaps,你经常会遇到复制SQL的重复片段,例如一个从条文或约束的声明,iBATIS的提供了一个简单而强大的重用他们的标签,为了简单起见,我们假设我们希望得到一些项目并且想做一个计算。通常,你会写这样的东西:
Example 3.6. Reusing SQL Fragments (Before)
 
 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值