



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
变更设计-绑定变量动态SQL查询方法设计BindSQL查询方法使用说明1 使用说明调用绑定变量查询接口使用说明。1. 声明BindSQL对象实例2. 编写标准绑定变量动态SQL。3. 顺序调用setValueList将参数,传入参数值,对应表名、列名。表名与列名为SQL中参数对应列的表名与类型,SQL编写时对char类型的列使用trim()方法,则表名、列名传null即可。setValueList提供两种构造函数方便调用者使用:setValueList(String tValue,String tTableName,String tColName)setValueList(double tValue,String tTableName,String tColName)注:若变量字段无对应表、列且变量的类型为varchar 则tTableName、tColName填null或 “”若变量字段无对应表、列且变量的类型为date 则tTableName、tColName填date若变量字段无对应表、列且变量的类型为number 则tTableName、tColName填number4. 调用query(String tSQL)方法,传入编写好的动态SQL,得到SSRS容器。该方法支持非绑定变量动态SQL查询,并返回SSRS,处理逻辑与ExeSQL类似。1.1 实例 String tSQL = Select 测试|count(1) From lcpol l Where 1=1 + And l.polno = ? + And trim(l.contno) = ? + And l.amnt = ? + And l.payintv = ? + And l.cvalidate = ? + And l.riskcode = ? + And l.managecom like ? + And (case ? when 1 then 1 end )=1 + And (case ? when 1 then 1 end )=1 ; BindSQL tBindSQL = new BindSQL(); tBindSQL.setValueList(8632H00025520,lcpol,polno); tBindSQL.setValueList(8632H0002552,null,null); tBindSQL.setValueList(20000,lcpol,amnt); tBindSQL.setValueList(12,lcpol,payintv); tBindSQL.setValueList(2002-6-27,lcpol,cvalidate); tBindSQL.setValueList(00601000,lcpol,riskcode); tBindSQL.setValueList(8632%,); tBindSQL.setValueList(1,number,number); tBindSQL.setValueList(1,); SSRS rs = tBindSQL.query(tSQL);for(int k=1;k=rs.MaxRow;k+)String t= ; for(int j=1;j=rs.MaxCol;j+) t+=rs.GetText(k,j)+ ; System.out.println(结果 = +t);# BindSQL = Select 测试|count(1) From lcpol l Where 1=1 And l.polno = 8632H00025520 And trim(l.contno) = 8632H0002552 And l.amnt = 20000.0 And l.payintv = 12 And l.cvalidate = 2002-6-27 And l.riskcode = 00601000 And l.managecom like 8632% And (case 1 when 1 then 1 end )=1 And (case 1 when 1 then 1 end )=1 结果 = 测试1测试结论:Like使用绑定变量方式查询测试通过。Number类型绑定变量方式查询测试通过。Char类型使用绑定变量方式查询测试通过。VarChar类型使用绑定变量方式查询测试通过。使用Trim()后使用绑定变量方式查询测试通过。1.2 文件列表JAVAsrccomsinosoftutilityBindSQL.javaJAVAsrccomsinosoftutilityBindValue.javaJAVAsrccomsinosoftutilityUserTableInfo.java2 注意事项1. 绑定变量的写法较为严谨,需严格限定输入值的顺序,以及SQL书写规范。例1:select ?num?+1 from dual,当num为空时,原算法程序执行结果为1,而新算法程序会报错。该SQL可以改写为select nvl(?num?,0)+1 from dual,使得新旧算法程序均支持。例2:select case ?FLAG? WHEN 1 THEN 0 ELSE FROM DUAL 要素FLAG对应的类型应为number类型,故表名与列名段应填写number2. 绑定变量的执行计划是以第一次执行时产生的,若绑定变量的字段数据分布不均,且第一次传入参数占有权重较大,则可能会影响到索引使用,造成之后的执行索引使用不当,影响效率,建议对分布不均的字段不适用绑定变量查询方式。3. 若要素无对应表名与列名,且要素值类型可为varchar,则表名、列名描述描述“”。4. 若要素无对应表名与列名,且要素值类型需为number,则表名、列名描述“number”。如:select case ?FLAG? WHEN 1 THEN 0 ELSE FROM DUAL要素FLAG对应的类型应为number类型,故表名与列名段应填写number5. 若要素无对应表名与列名,且要素值类型需为Date,则表名、列名描述“date”。6. 对于字段使用trim,substr等函数的,则可认为该字段为varchar7. SQL中”%”在变量左边的建议不使用绑定变量,因为可能无法使用到索引,会使得该S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年度财务预算编制课件
- 年度校园安全培训计划课件
- 年度安全检查培训课件
- 年度安全教育培训需求表课件
- 娱乐用电安全知识培训课件
- 年后复工安全培训制作课件
- 年历课件关注的问题
- 广西公务员真题2025
- 2024年晋中市太谷区社区专职工作人员选聘考试真题
- 平面转译设计讲解课件
- 2025年医师定期考核题库附答案详解
- 2025年B2B企业生成式引擎优化(GEO)实战指南
- 2025年宁波辅警考试题库(附答案)
- 国家电投2023上半年ESG实践报告:绿色发展助力电力行业转型升级
- 2025呼伦贝尔市交投公路建设有限公司招聘工作人员考试参考试题及答案解析
- 污水处理自动化工程施工组织计划
- 美发发型培训知识课件
- 电力市场风险管理办法
- 2025四川能投合江电力有限公司员工招聘11人笔试参考题库附答案解析
- 档案归档办法课件
- 2025年医院保洁员知识考试题(附答案)
评论
0/150
提交评论