对前台传回的list进行分割,并放在sql语句的in中

前端数据集传回数据

var matDeptHisMonthPlanStore = Ext.data.StoreManager.lookup(‘matDeptHisMonthPlanStore‘);
        matDeptHisMonthPlanStore.proxy.extraParams = {‘PROCESS_STATUS_LIST_STRING‘ : ‘0,1,2,3‘
        };

        matDeptHisMonthPlanStore.currentPage = 1;
        matDeptHisMonthPlanStore.load();

控制层处理数据

String PROCESS_STATUS_LIST_STRING,
List<Integer> PROCESS_STATUS_LIST = new ArrayList<Integer>();
            if (StringUtils.isNotEmpty(PROCESS_STATUS_LIST_STRING)) {
                String[] split = PROCESS_STATUS_LIST_STRING.split(",");
                for (int i = 0; i < split.length; i++) {
                    PROCESS_STATUS_LIST.add(Integer.valueOf(split[i]));
                }
            }

在实现层里写方法,使用SQL语句

if (PROCESS_STATUS_LIST != null && PROCESS_STATUS_LIST.size() > 0) {
            sql += " and PROCESS_STATUS_ in (:PROCESS_STATUS_LIST)";
            paramMap.put("PROCESS_STATUS_LIST", PROCESS_STATUS_LIST);
        }

        List<Object> result = new ArrayList<Object>();
        result.add(sql);
        result.add(paramMap);

        NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dmJdbcTemplate);
        return namedParameterJdbcTemplate.queryForList(sql, paramMap);

总结:控制层与实现层。控制层是作为前端数据与后端数据的交换,只是起转换传递作用。对具体的业务实现应放在实现层做处理。达到数据与业务的分离,各个方法作为独立的模块工作,互不干扰。对不是数据库的数据,只是做显示处理,以及保密性,可以放在控制层做处理

SQL语句中 = 比 in 的效率更高

时间: 2024-11-02 23:22:11

对前台传回的list进行分割,并放在sql语句的in中的相关文章

sql语句中如何分割字符串进行替换

碰到一个这样的需求,修改父文件夹名称,要全部更新掉子节点的名称. 规则是保留子节点按-分割后的最后一个元素不变,前面的字符串更新为父节点名称. 如下图: 假如我修改父节点 "东南网-西岸时评 测试"-> "东南网测试",则下面的节点应该要这样的结果: 原来处理的sql语句: update websiteB set websiteName=websiteName where [email protected] 显然是无法满足的,用存储过程,涉及到游标遍历,还要再

mssql字符串分割后的值,把表中不存在的插入表中

字符串分割后的值,把表中不存在的插入表中 --供大家参考 使用场景,自行思考…… --创建表tb1 Create table tb1 ( cola int, colb varchar(50) ) --插入数据 insert into tb1(cola,colb) select 1, 'A' union all select 2, 'B' union all select 3, 'C'; --存储过程 Create proc sp_tbTest @sid int,--ID @str varchar

前台拼凑sql语句传到后台

有时我们会把一些sql的在前台动态生成,这是我们首先要做的是验证他是不是合法,如果sql 语句结尾为and 或or 我们也要进行删除处理,不然会报错. 1.前台js 判断是否满足左右括号对称 function checkBracket(algorithms) { var bracket = []; var algorithms = algorithms || ''; for (var i = 0; i < algorithms.length; i++) { if (algorithms.char

【翻译】HTML5开发——轻量级Web Database存储库html5sql.js

方式1: html5sql官方网址:http://html5sql.com/ 阅读之前,先看W3C关于WEB Database的一段话: Beware. This specification is no longer in active maintenance and the Web Applications Working Group does not intend to maintain it further. 意味着WEB Database规范陷入僵局. html5sql官方网址:http

面试题

最近找工作,有面试有笔试部分,故把笔试题自己整理了下. 面试能力要求:精通iphone的UI开发,能熟练操作复杂表视图,熟练使用图层技术, 可以自定义UI控件,使用类别扩展系统控件功能;  擅长通讯技术,熟悉各种通信协议,精通xml, json, 二进制或其他形式的自定义解析,能架设服务器实现客户端与服务器的通讯以提交开发效率; 熟练掌握各种数据存储技术,如core data, sqlite,  对象序列化,文件读写操作,熟悉数据库的设计.  精通 object-c,java, c  等编程语言

iOS 笔试题-1

ios笔试题 有一篇面试题总结文章:http://www.onmoso.com/ios/356.html 原文地址:http://www.cnblogs.com/jiangshiyong/archive/2012/08/27/2657862.html 面试能力要求:精通iphone的UI开发,能熟练操作复杂表视图,熟练使用图层技术, 可以自定义UI控件,使用类别扩展系统控件功能; 擅长通讯技术,熟悉各种通信协议,精通xml, json, 二进制或其他形式的自定义解析,能架设服务器实现客户端与服务

一梦浮生2012 IOS基础恶补

一梦浮生2012 精通iphone的UI开发,能熟练操作复杂表视图,熟练使用图层技术, 可以自定义UI控件,使用类别扩展系统控件功能; 擅长通讯技术,熟悉各种通信协议,精通xml, json, 二进制或其他形式的自定义解析,能架设服务器实现客户端与服务器的通讯以提交开发效率; 熟练掌握各种数据存储技术,如core data, sqlite,  对象序列化,文件读写操作,熟悉数据库的设计. 精通 object-c,java, c  等编程语言, 熟悉c++,对于 面向对象编程思想有深入理解,熟悉常

面试题(校招java)

1:linux线程和进程的区别? 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程的一个执行流,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.一个进程由几个线程组成(拥有很多相对独立的执行流的用户程序共享应用程序的大部分数据结构),线程与同属一个进程的其他的线程共享进程所拥有的全部资源. 进程是资源分配的最小单位,线程是CPU调度的最小单位 使用多线程的理由

【转载】Oracle ACE总监对Oracle 12c的一些新特性总结

本文是Oracle ACE总监Syed Jaffer Hussain对Oracle数据库12c的一些新特性总结,包括数据库管理.RMAN.高可用性以及性能调优等内容. 主要内容:1. 在线迁移活跃的数据文件2. 表分区或子分区的在线迁移3. 不可见字段4. 相同字段上的多重索引5. DDL日志6. 临时undo7. 新的备份用户特权8. 如何在RMAN中执行SQL语句9. RMAN中的表级别恢复10. PGA的大小限制问题11. 对表分区维护的增强12. 数据库升级的改进13. 通过网络恢复数据