2008-07-02
rapid系列:发布一款动态构造sql的工具: XsqlBuilder
关键字: 开源开发
XsqlBuilder用于可以动态构造sql语句,避免在构造sql时使用过多的 if 判断,与SafeSqlProcesser集成提供防止sql注入攻击,与DataModifier集成完成数据类型的转换
动态构造sql示例:
构造生成的结果result.getXsql()将会等于
被过滤删除的段:
/~ and password = {password} ~/这一段由于在filters中password不存在而没有被构造出来
/~ and sex = [sex] ~/由于sex的值为空串也没有被构造出来
最后result.acceptedFilters值
相关符号介绍:
/~ 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
动态构造sql示例:
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()将会等于
select * from user where 1=1 and username={username} and age=12
被过滤删除的段:
/~ and password = {password} ~/这一段由于在filters中password不存在而没有被构造出来
/~ and sex = [sex] ~/由于sex的值为空串也没有被构造出来
最后result.acceptedFilters值
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
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 28774 次
- 性别:

- 来自: 珠海

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
为何代码生成器都要这么智 ...
貌似大部分的代码生成都局限于功能性的生成而已
-- by sevenhighness -
为何代码生成器都要这么智 ...
你的rpaid-framework很好用,谢谢楼主了.
-- by 超级潜水员 -
为何代码生成器都要这么智 ...
bruce_luo 写道不错,我以前也写过一个代码生成器,但是我们老大说,你这一 ...
-- by farryu -
为何代码生成器都要这么智 ...
superxielei 写道说了这么多.我还是希望能看一看这个代码生成器... ...
-- by thc -
新版本发布:基于prototyp ...
請問和aculos的驗證有什麽區別?別人在prototype1.4的時候,我就用 ...
-- by williamy






评论排行榜