`
xys_777
  • 浏览: 204775 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

iBATIS动态标签

 
阅读更多

§<dynamic>标签
§二元标签
§一元标签
§<iterate>标签
§ 共同的属性 prepend,open,close
<dynamic>标签

§<dynamic>标签
§属性 prepend,open,close
二元条件标签

§<isEqual property=“age” compareValue=“20”>
比较属性值和静态值或另一个属性值是否相等

§<isNotEqual>
比较属性值和静态值或另一个属性值是否不相等。

§<isGreaterThan>
比较属性值是否大于静态值或另一个属性值。

§<isGreaterEqual>
比较属性值是否大于等于静态值或另一个属性值。

§<isLessThan>
比较属性值是否小于静态值或另一个属性值。

§<isLessEqual>
比较属性值是否小于等于静态值或另一个属性值。

一元条件标签

§<isPropertyAvailable>
检查是否存在该属性(存在parameter bean的属性)

§<isNotPropertyAvailable>
检查是否不存在该属性(不存在parameter bean的属性)

§<isNull>
检查属性是否为null

§<isNotNull>
检查属性是否不为null

§<isEmpty>
检查Collection.size()的值,属性的String或String.valueOf()值,是否为null或空(“”或size() < 1)

§<isNotEmpty>
检查Collection.size()的值,属性的String或String.valueOf()值,是否不为null或不为空(“”或size() > 0)

其他标签

§<isParameterPresent>
检查是否存在参数对象(不为null)

§<isNotParameterPresent>
检查是否不存在参数对象(参数对象为null)

§<iterate>
遍历类型为java.util.List的元素。

view plaincopy to clipboardprint?
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap>

<!-- 动态查询1-->
<select id="getOrders1" parameterClass="com.air.Account"
resultClass="com.air.Product">
SELECT
orders.id as id,
orders.product as product,
orders.customer as customer
FROM orders
<dynamic prepend=" WHERE ">
<isNull property="username">customer IS NOT NULL</isNull>
<isNotNull property="username">
orders.customer=#username#
</isNotNull>
</dynamic>
</select>

<!-- 动态查询2-->
<select id="getOrders2" parameterClass="com.air.Account"
resultClass="com.air.Product">
SELECT
o.id as id,
o.product as product,
o.customer as customer
FROM orders o
<isNotNull property="username">
INNER JOIN user_account a ON o.customer=a.username
</isNotNull>
<dynamic prepend="where ">
<isNotEmpty property="groupname" prepend="and " open="(" close=")">
a.groupname=#groupname#
</isNotEmpty>
</dynamic>
</select>

<!-- 动态查询3-->
<select id="getOrders3" parameterClass="com.air.Product"
resultClass="com.air.Product">
SELECT
orders.id as id,
orders.product as product,
orders.customer as customer
FROM orders
<dynamic prepend="WHERE ">
<isNotEmpty property="product" prepend="and" open="(" close=")" removeFirstPrepend="true">
product=#product#
</isNotEmpty>
<isNotEmpty property="customer" prepend="and" open="(" close=")">
customer=#customer#
</isNotEmpty>
</dynamic>
</select>

<!-- 动态查询4-->
<select id="getOrders4" parameterClass="com.air.Product"
resultClass="com.air.Product">
SELECT
*
FROM orders
<dynamic prepend="WHERE ">
<iterate property="keywords" open="(" close=")" conjunction="OR">
product=#keywords[]#
</iterate>
</dynamic>
<!-- <dynamic prepend="WHERE product IN ">-->
<!-- <iterate property="keywords" open="(" close=")" conjunction=","> -->
<!-- #keywords[]#-->
<!-- </iterate>-->
<!-- </dynamic>-->
</select>
</sqlMap>
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">

<sqlMap>

<!-- 动态查询1-->
<select id="getOrders1" parameterClass="com.air.Account"
resultClass="com.air.Product">
SELECT
orders.id as id,
orders.product as product,
orders.customer as customer
FROM orders
<dynamic prepend=" WHERE ">
<isNull property="username">customer IS NOT NULL</isNull>
<isNotNull property="username">
orders.customer=#username#
</isNotNull>
</dynamic>
</select>

<!-- 动态查询2-->
<select id="getOrders2" parameterClass="com.air.Account"
resultClass="com.air.Product">
SELECT
o.id as id,
o.product as product,
o.customer as customer
FROM orders o
<isNotNull property="username">
INNER JOIN user_account a ON o.customer=a.username
</isNotNull>
<dynamic prepend="where ">
<isNotEmpty property="groupname" prepend="and " open="(" close=")">
a.groupname=#groupname#
</isNotEmpty>
</dynamic>
</select>

<!-- 动态查询3-->
<select id="getOrders3" parameterClass="com.air.Product"
resultClass="com.air.Product">
SELECT
orders.id as id,
orders.product as product,
orders.customer as customer
FROM orders
<dynamic prepend="WHERE ">
<isNotEmpty property="product" prepend="and" open="(" close=")" removeFirstPrepend="true">
product=#product#
</isNotEmpty>
<isNotEmpty property="customer" prepend="and" open="(" close=")">
customer=#customer#
</isNotEmpty>
</dynamic>
</select>

<!-- 动态查询4-->
<select id="getOrders4" parameterClass="com.air.Product"
resultClass="com.air.Product">
SELECT
*
FROM orders
<dynamic prepend="WHERE ">
<iterate property="keywords" open="(" close=")" conjunction="OR">
product=#keywords[]#
</iterate>
</dynamic>
<!-- <dynamic prepend="WHERE product IN ">-->
<!-- <iterate property="keywords" open="(" close=")" conjunction=","> -->
<!-- #keywords[]#-->
<!-- </iterate>-->
<!-- </dynamic>-->
</select>
</sqlMap>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics