`
砺雪凝霜
  • 浏览: 157047 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

给大家推荐一个比较方便的拼凑sql的方法

 
阅读更多

 

前台传参数的时候可以这么传:

<input name = "sp[0]" value = ""/>

<input name = "sp[1]" value = ""/>                  

........................ sp[14].................

sql拼凑的时候就可以这么写

private String getsqlcsp(List<String> sp) {
  String sqlc = "";
  for (int i = 0; i < sp.size(); i++) {
   if (StringUtils.isNotBlank(sp.get(i))) {
    String[] code = sp.get(i).split(";");
    if (code.length > 0) {
     for (int j = 0; j < code.length; j++) {
      switch (i) {
      case 0:
       if (code[j] == "") {
        break;
       } else {
        sqlc += " and t.gender = '" + code[j] + "'";
        break;
       }
      case 1:

       if (j == 0) {
        if (code.length == 1) {
         sqlc += " and ( " + code[j] + ")";
        } else {
         sqlc += " and ( " + code[j];
        }
       } else if (j == code.length - 1) {
        sqlc += " or " + code[j] + ")";
       } else {
        sqlc += " or " + code[j];
       }
       break;
      case 2:
       if (j == 0) {
        if (code.length == 1) {
         sqlc += " and t.id in (select m.user_id from user_organization m where m.organization_name like '%"
           + code[j] + "%')";
        } else {
         sqlc += " and t.id in (select m.user_id from user_organization m where m.organization_name like '%"
           + code[j] + "%'";
        }
       } else if (j == code.length - 1) {
        sqlc += " or m.organization_name like '%"
          + code[j] + "%')";
       } else {
        sqlc += " or m.organization_name like '%"
          + code[j] + "%'";
       }
       break;
      case 3:
       sqlc += " and t.contact = '" + code[j] + "'";
       break;
      case 4:
       sqlc += " and t.area1 = '" + code[j] + "'";
       break;
      case 5:
       sqlc += " and t.area2 = '" + code[j] + "'";
       break;
      case 6:
       code[j] = code[j].trim();
       if (j == 0) {
        if (code.length == 1) {
         sqlc += " and t.id in (select s.user_id from user_role s  where  s.role_code = '"
           + code[j] + "')";
        } else {
         sqlc += " and t.id in ( select s.user_id from user_role s where s.role_code = '"
           + code[j] + "'";
        }
       } else if (j == code.length - 1) {
        sqlc += " or  s.role_code = '" + code[j] + "')";
       } else {
        sqlc += " or  s.role_code = '" + code[j] + "'";
       }
       break;
      case 7:
       code[j] = code[j].trim();
       if (j == 0) {
        if (code.length == 1) {
         sqlc += " and ( " + code[j] + ")";
        } else {
         sqlc += " and ( " + code[j];
        }
       } else if (j == code.length - 1) {
        sqlc += " or " + code[j] + ")";
       } else {
        sqlc += " or " + code[j];
       }
       break;
      case 8:
       code[j] = code[j].trim();
       if (j == 0) {
        if (code.length == 1) {
         sqlc += " and t.job_title = '" + code[j]
           + "'";
        } else {
         sqlc += " and (t.job_title = '" + code[j]
           + "'";
        }
       } else if (j == code.length - 1) {
        sqlc += " or t.job_title = '" + code[j] + "')";
       } else {
        sqlc += " or t.job_title = '" + code[j] + "'";
       }
       break;
      case 9:
       code[j] = code[j].trim();
       if (j == 0) {
        if (code.length == 1) {
         sqlc += " and t.pc_activities like '%"
           + code[j] + "%'";
        } else {
         sqlc += " and (t.pc_activities like '%"
           + code[j] + "%'";
        }
       } else if (j == code.length - 1) {
        sqlc += " or t.pc_activities like '%" + code[j]
          + "%')";
       } else {
        sqlc += " or t.pc_activities like '%" + code[j]
          + "%'";
       }
       break;
      case 10:
       sqlc += " and t.ms_eff_date > to_date('" + code[j]
         + " 00:00:00','yyyy/mm/dd hh24:mi:ss')";
       break;
      case 11:
       sqlc += " and t.ms_eff_date < to_date('" + code[j]
         + " 23:59:59','yyyy/mm/dd hh24:mi:ss')";
       break;
      case 12:
       sqlc += " and t.time_for_now > to_date('" + code[j]
         + " 00:00:00','yyyy/mm/dd hh24:mi:ss')";
       break;
      case 13:
       sqlc += " and t.time_for_now < to_date('" + code[j]
         + " 23:59:59','yyyy/mm/dd hh24:mi:ss')";
       break;
      case 14:
       sqlc += " and to_char(sysdate,'yyyy') - to_char(ms_eff_date,'yyyy') >= "
         + Integer.parseInt(code[j]);
       break;
      case 15:
       sqlc += " and to_char(sysdate,'yyyy') - to_char(ms_eff_date,'yyyy') <= "
         + Integer.parseInt(code[j]);
       break;
      case 16:
       code[j] = code[j].trim();
       if (j == 0) {
        if (code.length == 1) {
         sqlc += " and t.id in (select s.user_id from log_user_sing s where s.sing_code like '%"
           + code[j] + "%')";
        } else {
         sqlc += " and t.id in (select s.user_id from log_user_sing s where s.sing_code like '%"
           + code[j] + "%'";
        }
       } else if (j == code.length - 1) {
        sqlc += " or s.sing_code like '%" + code[j]
          + "%')";
       } else {
        sqlc += " or s.sing_code like '%" + code[j]
          + "%'";
       }
       break;
      }
     }
    }
   }
  }
  return sqlc;
 }

 

分享到:
评论

相关推荐

    拼凑碎片:SQL Server 2005提供了丰富的碎片信息.pdf

    SQL Server 2005是微软公司推出的数据库管理系统的一个版本,它在数据管理和存储方面进行了许多改进。本文将深入探讨SQL Server 2005提供的碎片整理信息,以及如何有效利用这些信息进行数据库优化。 ### 碎片整理的...

    SQL参数化查询详解.pdf

    这种方式存在两个问题:一是安全隐患,容易导致 SQL 注入式攻击;二是效率低下,每次查询都需要重新解析 SQL 语句。 SQL 参数化查询的原理是使用参数来代替具体的数值,如“SELECT column1, column2, … FROM table...

    多线程+二分法的巧用——通达OA SQL盲注1

    通达OA系统存在一个MySQL布尔型盲注漏洞,攻击者可以构造如下的POST请求: ``` POST http://127.0.0.1:8088//general/document/index.php/recv/register/insert HTTP/1.1 Host: 127.0.0.1:8088 User-Agent: Mozilla...

    基于拼凑算法(PATCHWORK)信息隐藏源码.rar

    在IT领域,信息隐藏是一种重要的技术,用于在数据中嵌入秘密信息,使得这些信息对非授权用户不可见,但对拥有解密方法的合法用户则可以被提取出来。拼凑算法(PATCHWORK)是一种典型的信息隐藏技术,常用于数字水印...

    拼图将碎片拼凑成一个完整画面HTML5源码

    【标题】:“拼图将碎片拼凑成一个完整画面HTML5源码”指的是一个使用HTML5技术实现的在线拼图游戏。在这个项目中,开发者利用HTML5的Canvas元素和JavaScript编程来创建一个互动的拼图游戏,玩家可以将打乱的图片...

    SQL查询构建工具Querydsl.zip

    Querydsl是一个Java开源框架用于构建类型安全的SQL查询语句。它采用API代替拼凑字符串来构造查询语句。可跟 Hibernate 和 JPA 等框架结合使用。 基本查询: JPAQuery query = new JPAQuery(entityManager); ...

    JSP购物车(SQLserver版)

    大二时自己编写的,供大家参考学习 功能不是很详尽,美工也是拼凑了以前的flash,请见谅, 数据库在data文件夹中,在SQLserver中附加数据库即可 bean在classes--bean中 放进classes里即可 核心代码在list.jsp中

    方块 圆圈拼凑创意世界地图素材模板.rar

    "方块 圆圈拼凑创意世界地图素材模板.rar" 正是这样的一个设计工具,它为设计者们提供了通过方块与圆圈的组合来创造新颖世界地图的素材。 传统的世界地图通常使用经纬度网格来标示地点,给人以秩序和结构感,而...

    一个用Java编写的短信发送类

    例如,可能会有一个`sendSms(String phoneNumber, String message)`方法,其中`phoneNumber`是接收者的电话号码,`message`是短信内容。这样的设计遵循了面向对象编程的原则,使得代码更加模块化和可复用。 此外,...

    一款很棒的,来自拼凑科技的,wme的一个组合,组合式一般化,但是下载了42分,所以进行一个上传,公布出来

    一款很棒的,来自拼凑科技的,wme的一个组合,组合式一般化,但是下载了42分,所以进行一个上传,公布出来

    动态sql示例.txt

    除了某些不得不用动态SQL拼凑执行语句的情况,我们还存在一种情况需要写成动态SQL执行SP,那就是SP的互相调用。

    文字字符 字符拼凑文字工具

    3. **bk.gif**:这是一个背景图像文件,可能用于软件的界面设计,提供一个美观的背景,提升用户体验。 4. **help.htm**:这是帮助文档,通常包含软件的使用指南、功能介绍和常见问题解答,用户可以通过它来学习如何...

    Alien(拼凑效果等

    总的来说,"Alien(拼凑效果等)"可能是一个专注于照片拼接和创意图像编辑的资源包,其中包含的PS插件可以帮助用户轻松地创造出具有独特视角和视觉冲击力的作品。通过学习和掌握这些工具和技术,摄影爱好者和设计师...

    html中使用canvas实现对在线获取的瓦片地图源数据的的重新拼凑、放大缩小、经纬度定位

    瓦片地图是一种将地球表面分成多个小块(通常256x256像素),每个小块对应一个特定的经纬度范围。这些小块被称为地图瓦片,它们被存储为单独的图像文件,通常为JPEG或PNG格式。当用户在浏览器中查看地图时,地图服务...

    cssgaga 图片拼凑快速软件

    6. **第三方库**:`MagickNet.dll`可能代表ImageMagick.NET,一个强大的图像处理库,用于处理图片拼接和转换。`ICSharpCode.SharpZipLib.dll`则是用于文件压缩和解压缩的库,可能在软件中用于打包或导出资源。 7. *...

    JSP购物车SQLserver版

    大二时自己编写的,供大家参考学习 功能不是很详尽,美工也是拼凑了以前的flash,请见谅, 数据库在data文件夹中,在SQLserver中附加数据库即可 bean在classes--bean中 放进classes里即可 核心代码在list.jsp中

    拼凑出来的系统巡查脚本

    拼凑出来的脚本

Global site tag (gtag.js) - Google Analytics