仅仅是执行流程介绍:
示例代码
执行流程
1. 建立sqlMap 里面写上SQL语句
2. XML 装载BasicDataBase类,并设置数据库连接user pwd dest 等信息(这个应该通过使用PropertyPlaceholderConfiger加载配置文件实现)
3. 创建domain和dao操作接口
4. 在daoImpl中继承SqlMapClientDapSupport 类和dao操作接口。
5. 在Impl中调用在1中写的SQL语句 setSqlMapClient(sqlMapClient) 设置类,使用getSqlMapClientTemplate.xxx调用,通过返回值的类型转换成所需要的。
dynamic标签的prepend属性作为前缀添加到结果内容前面,当标签的结果内容为空时,prepend属性将不起作用。
当dynamic标签中存在prepend属性时,将会把其嵌套子标签的第一个prepend属性忽略
2.select详解
//示例
<select id="UserDAO.getByQuery" parameterClass="java.util.Map"
resultClass="UserDO">
select
<include refid="UserDO.all.fields"/>
from
users
<dynamic prepend="where">
<isNotEmpty prepend="and" property="nick">
nick like
concat(concat("%",#nick#),"%")
</isNotEmpty>
<isNotEmpty prepend="and" property="userTags">
(<iterate prepend="" conjunction="or" property="userTags">
<![CDATA[user_tag = user_tag | $userTags[]$]]>
</iterate>)
</isNotEmpty>
<isNotEmpty prepend="and" property="userIds">
user_id in
<iterate open="(" close=")" property="userIds" conjunction=",">
$userIds[]$
</iterate>
</isNotEmpty>
<isNotNull property="gmtModifiedStart" prepend="and">
gmt_modified >= #gmtModifiedStart#
</isNotNull>
<isNotNull property="startCreated" prepend="and">
gmt_created >= #startCreated#
</isNotNull>
<isNotNull property="endCreated" prepend="and">
<![CDATA[gmt_created <= #endCreated#]]>
</isNotNull>
<isNotEmpty prepend="and" property="remark">
<![CDATA[(remark is not null and remark <> '')]]>
</isNotEmpty>
<isNotNull prepend="and" property="superUser">
<![CDATA[user_tag & (1<<13) = 0]]>
</isNotNull>
<isNotEmpty prepend="and" property="manager" open="(" close=")">
manager in (#manager#, "咨询", "") or manager is null
</isNotEmpty>
<isNotNull prepend="and" property="filterTaoDianDian">
<![CDATA[user_tag & (1<<28) = 0]]>
</isNotNull>
</dynamic>
order by gmt_created desc
<dynamic prepend="">
<isNotEmpty prepend="" property="_start">
<isNotEmpty prepend="" property="_limit">
limit
$_start$,$_limit$
</isNotEmpty>
</isNotEmpty>
</dynamic>
</select>