`
砺雪凝霜
  • 浏览: 156743 次
  • 性别: 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