dorado5之SqlMatchRule
来源:互联网 发布:手写字体软件 编辑:程序博客网 时间:2024/06/06 00:29
在拼接的sql中使用in关键字,而in括号里的内容来自于该dataset的parameters
var parameters = datasetCUSTOMER.parameters();
parameters.setValue("DN_HME_TEL", DN_HME_TEL);
parameters.setValue("DN_CO_TEL", DN_CO_TEL);
parameters.setValue("DN_CRY_TEL", DN_CRY_TEL);
parameters.setValue("DN_CRY_TEL2", DN_CRY_TEL2);
如果dataset的SqlMatchRule如下定义:
<MatchRules>
<MatchRule level="1" type="Sql" enabled="true" escapeEnabled="false" sql="DN_CUSTOMER.DN_HME_TEL in (:DN_HME_TEL,:DN_CO_TEL,:DN_CRY_TEL,:DN_CRY_TEL2)" />
<MatchRule level="1" kind="or" type="AndOr" />
<MatchRule level="1" type="Sql" enabled="true" escapeEnabled="false" sql="DN_CUSTOMER.DN_CRY_TEL in (:DN_HME_TEL,:DN_CO_TEL,:DN_CRY_TEL,:DN_CRY_TEL2)" />
<MatchRule level="1" kind="or" type="AndOr" />
<MatchRule level="1" type="Sql" enabled="true" escapeEnabled="false" sql="DN_CUSTOMER.DN_CO_TEL in (:DN_HME_TEL,:DN_CO_TEL,:DN_CRY_TEL,:DN_CRY_TEL2)" />
<MatchRule level="1" kind="or" type="AndOr" />
<MatchRule level="1" type="Sql" enabled="true" escapeEnabled="false" sql="DN_CUSTOMER.DN_CRY_TEL2 in (:DN_HME_TEL,:DN_CO_TEL,:DN_CRY_TEL,:DN_CRY_TEL2)" />
</MatchRules>
则生产的sql如下:
SELECT * FROM ( SELECT
DN_CUSTOMER.DN_CST_ID,
DN_CUSTOMER.DN_CST_NM,
DN_CUSTOMER.DN_HME_TEL,
DN_CUSTOMER.DN_CRY_TEL,
DN_CUSTOMER.DN_CO_TEL,
DN_CUSTOMER.DN_CRY_TEL2
FROM
DN_CUSTOMER
WHERE
DN_CUSTOMER.DN_HME_TEL in (?,?,?,?) or DN_CUSTOMER.DN_CRY_TEL in (?,?,?,?) or DN_CUSTOMER.DN_CO_TEL in (?,?,?,?) or (DN_CUSTOMER.DN_CRY_TEL2 in (?,?,?,?) and (DN_CUSTOMER.DN_HME_TEL like ?) and (DN_CUSTOMER.DN_CO_TEL like ?))
ORDER BY
TO_NUMBER(DN_CST_ID)
) WHERE rownum <= 100
可以看出上面的sql中除了in还多出了like,原因是parameters中的key和value一致了,可以将key改为其他的名字,同时修改SqlMatchRule的内容即可,如下:
parameters.setValue("hmeTel", DN_HME_TEL);
parameters.setValue("coTel", DN_CO_TEL);
parameters.setValue("cryTel", DN_CRY_TEL);
parameters.setValue("cryTel2", DN_CRY_TEL2);
SELECT * FROM ( SELECT
DN_CUSTOMER.DN_CST_ID,
DN_CUSTOMER.DN_CST_NM,
DN_CUSTOMER.DN_HME_TEL,
DN_CUSTOMER.DN_CRY_TEL,
DN_CUSTOMER.DN_CO_TEL,
DN_CUSTOMER.DN_CRY_TEL2
FROM
DN_CUSTOMER
WHERE
DN_CUSTOMER.DN_HME_TEL in (?,?,?,?) or DN_CUSTOMER.DN_CRY_TEL in (?,?,?,?) or DN_CUSTOMER.DN_CO_TEL in (?,?,?,?) or DN_CUSTOMER.DN_CRY_TEL2 in (?,?,?,?)
ORDER BY
TO_NUMBER(DN_CST_ID)
) WHERE rownum <= 100
可以看到,没有了like。
OK
- dorado5之SqlMatchRule
- dorado5 之一eclipse配置dorado5插件
- dorado5基本技术资料汇总
- DORADO5 dataTree 的问题
- dorado5 上传源码
- dorado5-css的设置
- dorado5的查询
- dorado5资料整理
- dorado5-css的设置
- dorado5的查询
- dorado5产品学习资料总合
- 整合spring4.1.7和dorado5
- 发现一个不错的框架dorado5
- dorado5 动态生成ds中的列
- dorado5中viewModel的几种状态
- 在Eclipse中安装dorado5插件
- dorado5中viewModel的几种状态
- 在Eclipse中安装dorado5插件
- 碎片学习
- surfaceview already connect错误
- 联系方式
- Spring + Quartz 作业调度框架
- 百度地图开发之获取定位地点
- dorado5之SqlMatchRule
- struts2学习——Action
- android下查看内存阀值限制
- Two Sum
- php zookeeper配置管理应用实践
- Android通讯录开发之联系人
- 使用SQLQuery 在Hibernate中使用sql语句
- gloox移植到android平台
- Visual Studio 应用第三方库的设置方法