XsqlBuilder用于可以动态构造sql语句,避免在构造sql时使用过多的 if 判断,与SafeSqlProcesser集成提供防止sql注入攻击,与DataModifier集成完成数据类型的转换

动态构造sql示例:

Java代码

String xsql = "select * from user where1=1

/~ and username = {username} ~/

/~ and password = {password} ~/

/~ and age = [age] ~/

/~ and sex = [sex] ~/"

Map filters = newHashMap();

filters.put("username","badqiu");

filters.put("age","12");

filters.put("sex","");

XsqlFilterResult result = xsqlBuilder.applyFilters(xsql,filters);

String xsql = "select * from user where 1=1

/~ and username = {username} ~/

/~ and password = {password} ~/

/~ and age = [age] ~/

/~ and sex = [sex] ~/"

Map filters = new HashMap();

filters.put("username", "badqiu");

filters.put("age", "12");

filters.put("sex", "");

XsqlFilterResult result = xsqlBuilder.applyFilters(xsql,filters);

构造生成的结果result.getXsql()将会等于

Sql代码

select*fromuserwhere1=1andusername={username}andage=12

select * from user where 1=1 and username={username} and age=12

被过滤删除的段:        /~ and password = {password} ~/这一段由于在filters中password不存在而没有被构造出来         /~ and sex = [sex] ~/由于sex的值为空串也没有被构造出来

最后result.acceptedFilters值

Java代码

Map acceptedFilters = result.getAcceptedFilters();

会等于:

{username=badqiu}

Map acceptedFilters = result.getAcceptedFilters();

会等于:

{username=badqiu}

相关符号介绍:

/~ segment... ~/ 为一个条件代码块         {key} 过滤器中起标记作用的key,作为后面可以替换为sql的?,或是hql的:username标记         [key] 将直接替换为key value

数据类型转换示例:

select * from user where and 1=1 /~ age={age?int} ~/ 将会将Map filters中key=age的值转换为int类型

项目地址:http://code.google.com/p/rapid-xsqlbuilder/

下载地址:http://rapid-xsqlbuilder.googlecode.com/files/xsqlbuilder-1.0.zip

声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。

postgresql 动态添加过滤条件_XsqlFilterResult----动态生成sql语句的类,过滤一些为空的查询条件...相关推荐

  1. JS动态修改页面EasyUI datebox不生效、EasyUI动态添加Class、EasyUI动态渲染解析解决方案

    JS动态修改页面EasyUI datebox不生效.EasyUI动态添加Class.EasyUI动态渲染解析解决方案 参考文章: (1)JS动态修改页面EasyUI datebox不生效.EasyUI ...

  2. excel动态生成Sql语句

    文章目录 0. 前言 1. 先说结论 2. 例子 0. 前言 由于工作原因,无意中发现有时候有些数据来由形式是excel文件,需要把里面的值变成sql语句,然后去数据库中执行. 因此记录下如何让exc ...

  3. 解放程序员双手!GPT-3自动生成SQL语句 | 代码开源

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI "无所不能"的GPT-3,现在又来解放程序员们的双手了. 像这样,只需用简单的英文问下GPT-3"上个月注册了 ...

  4. Excel表格生成sql语句

    假如excel表格中有A.B.C三列数据,希望导入到数据库users表中,对应的字段分别是name,sex,age ,在你的excel表格中增加一列,利用excel的公式自动生成sql语句,方法如下: ...

  5. 码匠 × OpenAI :快速生成 SQL 语句,提升开发效率!

    目录 使用 OpenAI 生成 SQL 码匠连接与集成 OpenAI 总结 关于码匠 在码匠中,编写 SQL 语句,并结合码匠一系列开箱即用的组件实现复杂的业务逻辑,是很常见的应用开发场景.然而,不同 ...

  6. oracle添加表的索引,oracle批量添加指定表前缀的索引SQL语句

    oracle批量添加指定表前缀的索引SQL语句 需要输入用户名,表空间,索引个数,表名前缀,过滤的表名后缀 ##需要输入用户名,表空间,索引个数,表名前缀,过滤的表名后缀 declare --用户名 ...

  7. mysql语句生成,SQL语句生成器

    SQL语句自动生成器正式版是一款功能强大.十分实用方便的数据库编程软件,可以帮助用户简便快捷的生成sql语句,SQL语句自动生成器正式版支持桌面数据库和大中型数据库,以及排序.条件.分组.函数等多种s ...

  8. NO2:自动生成sql语句

    SQL语句自动生成工具 大哉乾元 2016/2/26   作者原创转载请注明出处 前言 这个程序是几年前做成的,现在整理成文档和大家分享,当时参与的项目中大量使用的sql语句,所以SqL语句的代码输入 ...

  9. 用一个类根据Model属性生成SQL语句

    想到写这个的原因是我和我的一个朋友在写一个开源项目的时候,我负责了数据库的持久化存储部分,结果他看到了我的数据库数据存储结构之后直接傻眼了,因为个人比较简单粗暴,直接把一个数据Model归档成为二进制 ...

最新文章

  1. HTTP请求过程详解
  2. 宋祖儿面对粉丝不停撩头发,手上的书本亮了,是要转行当程序员?
  3. 从C语言的角度重构数据结构系列(四)-静态链表动态链表
  4. Spring AOP之ThrowsAdvice
  5. Microsoft发布用于统一事件处理的Azure事件网格
  6. python升级pip在哪儿打开_Linux下升级python和安装pip的详解
  7. 中国首辆火星车全球征名,李彦宏推荐命名:祝融
  8. java怎么查问题,java线上问题排查(日志、资源、代码定位)
  9. java中实体类中实现Serializable接口的作用
  10. [HDOJ1823] Luck and Love(线段树,树套树)
  11. Javascript特效:天猫导航
  12. 单晶X射线衍射法和粉末X射线衍射法有哪些不同?
  13. 什么无线桥接一直正在链接服务器失败,无线桥接连接失败_WDS无线桥接不成功怎么办?-192路由网...
  14. 如何查看自己网站的访问量
  15. NFA到DFA的子集构造法
  16. 你还不知道邮件可以撤回吗?学会邮件怎么撤回,远离办公社死现场
  17. CopyOnWrite
  18. Java是什么?我们为什么要学习Java?
  19. 软件测试人员的职业晋升之路
  20. 1.MySQL 官网安装包下载教程

热门文章

  1. JAVA调用NuSoap服务
  2. 阿里云负载均衡升级:同城容灾进一步提升可用性
  3. SCOM 2012知识分享-17:创建并管理组
  4. MongoDB配置主从同步(二)
  5. markdown 折叠目录_Markdown秒变PPT
  6. 测试工程师,必须掌握的shell变量知识
  7. 百度地图订单分布php,php与百度地图API实现注册用户分布图
  8. 新浪微博php7升级实践,PHP7线上system time飙高问题
  9. fiddler网站请求被拦截怎么恢复?
  10. fiddler显示服务器IP