JAVA 中SQL字符动态拼接
select SYR,SFZMHM,CJRZH,XSZBH,HPHM,CLSBDH,FDJH,CLLX,ZDYZT,to_char(CCDJRQ,'YYYY-MM-DD') CCDJRQ from VEH_DISABLED where CCDJRQ between to_date('2013-10-15','yyyy-MM-dd')and to_date('2015-10-15','yyyy-MM-dd') order by CCDJRQ desc
Service里的查询:
public List getAdvancedListService(Map map){ StringBuilder sqlCondition = new StringBuilder(); Set keys = map.keySet(); if (keys.contains("SYR")) { if (map.get("SYR") != null && !"".equals(map.get("SYR").toString().trim()) && !"null".equals(map.get("SYR"))) { sqlCondition.append("and SYR like '%" + map.get("SYR") + "%'"); } } if (keys.contains("SFZMHM")) { if (map.get("SFZMHM") != null && !"".equals(map.get("SFZMHM").toString().trim()) && !"null".equals(map.get("SFZMHM"))) { sqlCondition.append("and SFZMHM = '" + map.get("SFZMHM") + "'"); } } if (keys.contains("CJRZH")) { if (map.get("CJRZH") != null && !"".equals(map.get("CJRZH").toString().trim()) && !"null".equals(map.get("CJRZH"))) { sqlCondition.append("and CJRZH like '%" + map.get("CJRZH") + "%' "); } } if (keys.contains("XSZBH")) { if (map.get("XSZBH") != null && !"".equals(map.get("XSZBH").toString().trim()) && !"null".equals(map.get("XSZBH").toString().trim())) { sqlCondition.append("and XSZBH like '%" + map.get("XSZBH") + "%' "); } } if (keys.contains("CLSBDH")) { if (map.get("CLSBDH") != null && !"".equals(map.get("CLSBDH").toString().trim()) && !"null".equals(map.get("CLSBDH").toString().trim())) { sqlCondition.append("and CLSBDH = '" + map.get("CLSBDH") + "' "); } } if (keys.contains("FDJH")) { if (map.get("FDJH") != null && !"".equals(map.get("FDJH").toString().trim()) && !"null".equals(map.get("FDJH").toString().trim())) { sqlCondition.append("and FDJH = '" + map.get("FDJH") + "' "); } } if (keys.contains("CLLX")) { if (map.get("CLLX") != null && !"".equals(map.get("CLLX").toString().trim()) && !"null".equals(map.get("CLLX").toString().trim())) { sqlCondition.append("and CLLX = '" + map.get("CLLX") + "' "); } } if (keys.contains("HPHM")) { if (map.get("HPHM") != null && !"".equals(map.get("HPHM").toString().trim()) && !"null".equals(map.get("HPHM"))) { sqlCondition.append("and HPHM = '" + map.get("HPHM") + "' "); } } if (keys.contains("loginBeginTime") && keys.contains("loginEndTime")){ sqlCondition.append("and CCDJRQ between to_date('").append(map.get("loginBeginTime")).append("','yyyy-MM-dd')and to_date('").append(map.get("loginEndTime")).append("','yyyy-MM-dd')"); } if(sqlCondition.length() > 3){ return disabledvehDao.getAdvancedList(sqlCondition.substring(3)); } return disabledvehDao.getAdvancedList(sqlCondition.toString()); }
Dao类:
/** * 高级查询 * @param * @return */ @SuppressWarnings("rawtypes") public List getAdvancedList(String condition){ String sql; if("".equals(condition) || "null".equals(condition) || condition == null){ sql ="select d.SYR,d.SFZMHM,d.CJRZH,d.XSZBH,d.HPHM,d.CLSBDH,d.FDJH,d.CLLX,d.ZDYZT,to_char(d.CCDJRQ,'YYYY-MM-DD') CCDJRQ"+ " from VEH_DISABLED d order by d.CCDJRQ desc"; }else{ sql = "select d.SYR,d.SFZMHM,d.CJRZH,d.XSZBH,d.HPHM,d.CLSBDH,d.FDJH,d.CLLX,d.ZDYZT,to_char(d.CCDJRQ,'YYYY-MM-DD') CCDJRQ"+ " from VEH_DISABLED d where "+condition+" order by d.CCDJRQ desc"; } return jdbcTemplate.queryForList(sql); }
provider类:
package com.suntek.disabledvehmgr.web.disabledveh; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import com.suntek.ccf.web.service.ServiceInvocationException; import com.suntek.eap.core.app.AppHandle; import com.suntek.disabledvehmgr.dao.base.BaseGrid; import com.suntek.disabledvehmgr.log.DisabledvehMgrLogger; import com.suntek.disabledvehmgr.service.disabledveh.DisabledvehService; import com.suntek.disabledvehmgr.util.CommonUtil; import com.suntek.disabledvehmgr.util.Constants; import com.suntek.disabledvehmgr.util.SpringContextUtils; /** * 残疾车业务provider类 * @author sawshaw * */ public class AdvancedQueryProvider extends BaseGrid{ @SuppressWarnings("unused") private AppHandle appHandle; private HttpServletRequest request; private DisabledvehService disabledvehService; @Override public void after(HttpServletRequest arg0) throws ServiceInvocationException { } @Override public void before(HttpServletRequest request) throws ServiceInvocationException { this.request = request; this.appHandle = AppHandle.getHandle(Constants.APP_NAME); this.disabledvehService = (DisabledvehService) SpringContextUtils.getBean("disabledvehService",request); } @SuppressWarnings({ "rawtypes", "unchecked" }) @Override public int directCount(Map map) { try{ if(!CommonUtil.isRequestLegal(request)){ datas = new ArrayList<Map>(); return datas.size(); } if("firstLoad".equals(CommonUtil.getKeyValue(map, "opera_type"))){ return 0; } if (map != null) { datas = disabledvehService.getAdvancedListService(map); } if(datas == null){ datas = new ArrayList<Map>(); } }catch(Exception e){ DisabledvehMgrLogger.logger.error("[AdvancedQueryProvider]directCount,查询异常,", e); datas = new ArrayList<Map>(); } return datas.size(); } @SuppressWarnings("rawtypes") @Override public List<Map> directFetch(Map map, int pageNo, int pageSize) { if("firstLoad".equals(CommonUtil.getKeyValue(map, "opera_type"))){ return new ArrayList<Map>(); } return CommonUtil.getPageList(pageNo, pageSize, datas); } }
页面关键部分:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=gbk" pageEncoding="gbk" %> <%@ taglib uri="http://eaptag.suntek.com" prefix="ui" %> <% String userCode=request.getRemoteUser(); String path = request.getContextPath(); if(userCode == null){ out.println("<script>top.location.href='" + path+ "/index.jsp';</script>"); return ; } %> <html> <head> <title>高级查询</title> <script type="text/javascript" src="/eaptag2/js/ccftag.form.js"></script> <script type="text/javascript" src="/eaptag2/js/ccftag.zdialog.js" ></script> <script type="text/javascript" src="<%=path%>/js/common.js" ></script> <script type="text/javascript" src="<%=path%>/js/station.util.js" ></script> <ui:Import tagNames="Window,Label,DateTimePicker,GTGrid,Button,GTGridField,Select"></ui:Import> <style type="text/css"> .queryLabel{ height:19px; width: 65px; text-align:right; padding-top: 2px; } </style> <script type="text/javascript"> var ajax = new ccftag_ajax("<%=path%>/ccftag",false); $(function(){ $('input:checkbox').click(function(){ var _this = $(this); if(_this.attr("checked") == true){ $("input[name='status']").each(function(i){ $(this).removeAttr("checked"); }); _this.attr("checked","checked"); }else{ _this.removeAttr("checked"); } doQuery(); }); }); function doQuery(){ var param = Form.formToBean(queryForm,"java.util.Map",true); if(param.loginEndTime!=''&& param.loginBeginTime=='') { alert("请选择开始登记日期!"); return ; } if(param.logiBeginTime!=''&& param.loginEndTime=='') { alert("请选择结束登记日期!"); return ; } if(param.loginEndTime < param.loginBeginTime){ alert("开始登记日期必须小于结束登记日期!"); return ; } param.SYR = $("#queryName").val(); param.SFZMHM = $("#queryIdNo").val(); param.CJRZH = $("#queryDisabledNo").val(); param.XSZBH = $("#queryTravelNo").val(); param.HPHM = $("#queryVehNo").val(); param.CLSBDH = $("#queryChassisNo").val(); param.FDJH = $("#queryEngineNo").val(); param.CLLX= $("#queryBrand").val(); param.loginBeginTime= $("#loginBeginTime").val(); param.loginEndTime= $("#loginEndTime").val(); param.status = getSelectStatus(); var map = disabledGrid.resetParameter(20,param); ajax.remoteCall("bean://com.suntek.disabledvehmgr.web.disabledveh.AdvancedQueryProvider:getData",[map],function(reply){ //alert(reply.getResult()); disabledGrid.cleanContent(); disabledGrid.setContent(eval("(" + reply.getResult() + ")")); }); } function getSelectStatus(){ var status = ""; var $statusObj = $("input[name='status']:checked"); $statusObj.each(function(i){ status += $statusObj.eq(i).val() + ","; }); if(status.length > 0){ status = status.substring(0, status.length-1); } return status; } </script> </head> <body style="margin: 0px; overflow: hidden;" scroll="no"> <ui:Window id="winVehicleList" title="" style="width:100%;height:100%;table-layout:fixed;" > <ui:Window.head> <form id="queryForm"> <input type="hidden" id="BOOKING_TYPE" name="BOOKING_TYPE" value="4"/> <label class="queryLabel">登记日期:</label> <ui:DateTimePicker id="loginBeginTime" dateFmt="yyyy-mm-dd" value="2013-10-15" style="width:100px" readOnly="true"></ui:DateTimePicker> 至<ui:DateTimePicker id="loginEndTime" dateFmt="yyyy-mm-dd" value="2014-12-15" style="width:100px" readOnly="true"></ui:DateTimePicker> <label class="queryLabel">姓名:</label><input type="text" id="queryName" style="width:106px;"/> <label class="queryLabel">身份证号:</label><input type="text" id="queryIdNo" style="width: 166px;"/> <label class="queryLabel">行驶证号:</label><input type="text" id="queryTravelNo" style="width:136px;"/><br/><br/> <label class="queryLabel">残疾证号:</label><input type="text" id="queryDisabledNo" style="width:136px;"/> <label class="queryLabel">车牌号:</label><input type="text" id="queryVehNo" style="width:106px;"/> <label class="queryLabel">车架号:</label><input type="text" id="queryChassisNo" style="width:106px;"/> <label class="queryLabel">发动机号:</label><input type="text" id="queryEngineNo" style="width:106px;"/> <label class="queryLabel">厂牌型号:</label><input type="text" id="queryBrand" style="width:106px;"/> <ui:Button cls="query" onClick="doQuery()">查询</ui:Button> </form><hr/> </ui:Window.head> <ui:Window.body id="winBlackListGrid" style="width:100%;height:100%"> <ui:GTGrid id="disabledGrid" rowNumPerPage="20" css="width:100%; height:100%;" uniqueField="ID" exportSupport="true" autoLoad="false" dataProvider="bean://com.suntek.disabledvehmgr.web.disabledveh.AdvancedQueryProvider:getData"> <%-- <ui:GTGridField name="ID" header="序号" isChecked="true"/> --%> <ui:GTGridField name="SYR" header="姓名" fieldType="string" align="left" width="100"/> <ui:GTGridField name="SFZMHM" header="身份证号" fieldType="string" align="center" width="150"/> <ui:GTGridField name="XSZBH" header="行驶证号" fieldType="string" align="center" width="120"/> <ui:GTGridField name="CJRZH" header="残疾证号" fieldType="string" align="center" width="120"/> <ui:GTGridField name="HPHM" header="车牌号" fieldType="string" align="center" width="120"/> <ui:GTGridField name="CLSBDH" header="车架号" fieldType="string" align="center" width="80"/> <ui:GTGridField name="FDJH" header="发动机号" fieldType="string" align="center" width="80"/> <ui:GTGridField name="CLLX" header="厂牌型号" fieldType="string" align="center" width="80"/> <ui:GTGridField name="ZDYZT" header="状态" fieldType="string" align="center" width="80"/> <ui:GTGridField name="CCDJRQ" header="登记日期" fieldType="string" align="center" width="120"/> <%-- <ui:GTGridField name="Files" header="申请资料电子影像文件" fieldType="string" align="center" width="140"/> --%> </ui:GTGrid> </ui:Window.body> </ui:Window> <!-- <iframe name="downloadFrame" border='0' width='0' height='0'></iframe> --> </body> </html>
JAVA 中SQL字符动态拼接的更多相关文章
- [转帖]关于Java中SQL语句的拼接规则
关于Java中SQL语句的拼接规则 自学demo 的时候遇到的问题 结果应该是 '"+e.getName()+"' 注意 一共有三组标点符号 (除去 方法函数后面的括号) 实现目标 ...
- 关于Java中SQL语句的拼接规则
实现目标语句是这个注意,这里的java变量是idd int idd; String sql = "SELECT id, piUrl FROM picinfos WHERE id BETWEE ...
- java中sql语句能不能加分号的问题?
一.原因 在程序运行中,当执行sql后总是报无效字符错误:但是把程序放在pl/sql中执行又没有错误.让我很纳闷!于是我开始查找资料,然后我终于发现了问题. 二.问题剖析 原来在程序中:如果你在程序 ...
- Java中面向字符的输入流
Java中面向字符的输入流 2016-12-04 Java程序员联盟 Java程序员联盟 Java程序员联盟 微信号 javalm 功能介绍 莫道君行早,更有早行人 全心敲代码,天道自酬勤 字符流是针 ...
- java中的字符集和编码
前言 上次对计算机中的“字符集”和“编码”分别进行了总结,并指出二者之间的区别,不要搞混了,不清楚的再回到上一章看一下.今天再总结下java中是如何使用字符集(主要是Unicode字符集,其他常用字符 ...
- Java中的JDK动态代理
所谓代理,其实就是相当于一个中间人,当客户端需要服务端的服务时,不是客户直接去找服务,而是客户先去找代理,告诉代理需要什么服务,然后代理再去服务端找服务,最后将结果返回给客户. 在日常生活中,就拿买火 ...
- Java中sql语句的引号问题
1..sql语句 在数据库中,当我们查询语句时,会使用类似的语句: Select * from userinfo where userid='1' or 1; Select * from userin ...
- 【Java编程】Java中的字符串匹配
在Java中,字符串的匹配可以使用下面两种方法: 1.使用正则表达式判断字符串匹配 2.使用Pattern类和Matcher类判断字符串匹配 正则表达式的字符串匹配: ...
- JAVA中Sql时间格式与util时间格式转换
关于时间格式转化: java.util.Date 与 java.sql.Date 互换 sql是子类 字符串转化成java.util.Date SimpleDateFormat date =n ...
随机推荐
- js原生选项卡(包含移动端无缝选项卡)三
今天分享下移动端原生js的无缝轮播图: 移动端尽量减少使用DOM操作来频繁的浪费移动端设备的性能,所以这个无缝轮播图更多的使用了transition和transform,无缝的思想和昨天分享的PC端的 ...
- angularjs的ng-repeat指令下的scope作用域
ng-repeat指令在迭代的时候,每次迭代都会创建一个新的scope,比如下面的代码: <div ng-repeat="list in lists" ng-controll ...
- 25Mybatis_查询缓存的基本知识
mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级和二级缓存的示意图:
- Go 命令之 godep
本文参考:http://www.cnblogs.com/me115/p/5528463.html#h20 http://studygolang.com/articles/4385 关于Godep 发现 ...
- iOS -数据库网络之xml解析之第三方解析XML
1.导入第三方插件(GDalaXMLNode) 2.第三方插件配置 libxml/tree.h 路径 在项目属性中--Bulid Settings中搜索 Search --Search ...
- HTML语义化之常见模块
用合理的HTML标记以及特有的属性去格式化文档内容. 浏览器会根据标签的语义给定一个默认的样式. 判断网页标签语义是否良好的一个简单方法就是:去掉样式,看网页结构是否组织良好有序,是否仍然有很好的可读 ...
- Ant 执行 YUICompressor
Ant 执行 YUICompressor 任务压缩 JavaScript 和 CSS 文件,解决中文乱码问题,增加源文件字符编码集设定 标签: javascriptantcss任务encodingnu ...
- [CareerCup] 10.5 Web Crawler 网络爬虫
10.5 If you were designing a web crawler, how would you avoid getting into infinite loops? 这道题问如果让我们 ...
- 记录我学github的路程(二)
2015-12-09 更新 1,现在,本地有了一个库,你可能会想到GitHub创建一个库,并且关联起来.这样,远程的库既可以当作备份,又可以让其他人通过该仓库来协作. 2,步骤: (1)登录GitHu ...
- ORCHARD中文文档(翻译)
众所周知,Orchard是.net领域最好的开源CMS之一,他使用了微软最先进的技术,有一群先进理念的支持者,但是,所有的事情在国内总得加个但是,Orchard也不例外,中文资料相对比较少,官网提供的 ...