import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args){
Map<String,Object> param = new HashMap<String,Object>();
/*List<String> list = new ArrayList<String>();
list.add("10000");
list.add("20000");
list.add("30000");*/
param.put("hrids", new String[]{"1000","2000","3000","4000"});
param.put("scids", new String[]{"100000","200000","3000","4000"});
param.put("beginDate", "'2010-03-20'");
param.put("endDate", "'2010-03-30'");
String sql="select from atd_holiday where scids in($scids$) and hrids in ($hrids$) and valid_date between #beginDate# and #endDate#";
Pattern pattern1 = Pattern.compile("\\$[a-zA-Z]+\\$");
Matcher matcher1 = pattern1.matcher(sql);
while(matcher1.find()){
String paramStr = matcher1.group();
String paramName=paramStr.replaceAll("\\$", "");
System.out.println(paramName);
Object value=param.get(paramName);
if(value instanceof String){
sql=sql.replace(paramStr,"'"+value.toString()+"'" );
}else if(value instanceof Collection){
Collection collection=(Collection)value;
StringBuffer sb = new StringBuffer();
int i=0;
for(Iterator it=collection.iterator();it.hasNext();i++){
Object obj=it.next();
sb.append("'"+obj.toString()+"'");
if(i<collection.size()-1){
sb.append(",");
}
}
sql=sql.replace(paramStr,sb.toString());
}else if(value instanceof Object[]){
Object[] objArray=(Object[])value;
StringBuffer sb = new StringBuffer();
for(int i=0;i<objArray.length;i++){
sb.append("'"+objArray[i].toString()+"'");
if(i<objArray.length-1){
sb.append(",");
}
}
sql=sql.replace(paramStr,sb.toString());
}
}
Pattern pattern2 = Pattern.compile("#[a-zA-Z]+#");
Matcher matcher2=pattern2.matcher(sql);
while(matcher2.find()){
String paraStr=matcher2.group();
String paramName=paraStr.replace("#", "");
System.out.println(paramName);
Object value=param.get(paramName);
sql=sql.replace(paraStr, value.toString());
}
System.out.println(sql);
}
}
分享到:
相关推荐
SQL参数格式 例如:select * from tb where nd=:nd and yd=:yd 想一次性把所有SQL语句中参数(带冒号)全部换成数据, 开始 选定用正则表达式。 原先写这样 代码如下: strsql.replace(/(:\w+)/g,(“$1”).substring(1)...
写出匹配SQL语句中的所有表名,备忘记录 折磨了好久,正则表达式如下: 代码如下: \*\s+from\s+[\w\[\]]*\.?[\w\[\]]*\.?\[?(\b\w+)\]?[\r\n\s]* 支持各种表达式 SELECT * FROM Config SELECT * FROM
主要介绍了mysql update正则替换sql语句的相关资料,需要的朋友可以参考下
本文实例讲述了MySQL中使用replace、regexp进行正则表达式替换的用法。分享给大家供大家参考,具体如下: 今天一个朋友问我,如果将数据库中查到的类似于“./uploads/110100_cityHotel_北京富豪华宾馆.jpg”这样的...
您可能感兴趣的文章:angularJs自定义过滤器实现手机号信息隐藏的方法mysql sql语句隐藏手机号码中间四位的方法php实现替换手机号中间数字为*号及隐藏IP最后几位的方法C#隐藏手机号、邮箱等敏感信息的实现方法PHP...
PS:下面是转过来的,用于记录下,这个不是正则的初衷,只是用了REGEXP而已,正则的更灵活更方便 将comment表中的author_url包含www.sohu.com的记录,其中的sohu替换为sina,一个语句搞定~ update comment set ...
代码如下:Update dede_addonsoft SET dxylink=REPLACE(dxylink, ‘.zip’, ‘.rar... :正则匹配,把field字段里的 .rar 替换为 .7z MySQL正则表达式替换,字符替换方法 两句SQL,都是字符替换,比较好用。 update com
介绍 这是一个VB6的插件, 为VB6提供了增强的 搜索支持. 此插件支持的功能 普通/模式搜索字符串 正则搜索、替换字符串 ...修改了正则表达式,查找,替换时产生的误差. 修改了通过插件工具栏启动出错的问题.
批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器(可设置、保存常用正则表达式) 获取键盘的按键值 网页隐藏资源下载,可下载无法直接得到URL的SWF、图片、音乐等资源 ...
批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器(可设置、保存常用正则表达式) 获取键盘的按键值 网页隐藏资源下载,可下载无法直接得到URL的SWF、图片、音乐等资源 获取...
批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器(可设置、保存常用正则表达式) 获取键盘的按键值 网页隐藏资源下载,可下载无法直接得到URL的SWF、图片、音乐等资源 ...
批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器(可设置、保存常用正则表达式) 获取键盘的按键值 网页隐藏资源下载,可下载无法直接得到URL的SWF、图片、音乐等资源 ...
批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器(可设置、保存常用正则表达式) 获取键盘的按键值 网页隐藏资源下载,可下载无法直接得到URL的SWF、图片、音乐等资源 ...
实例085 使用正则表达式替换字符串 101 实例086 使用正则表达式拆分字符串 102 实例087 使用正则表达式验证输入字母 102 实例088 使用正则表达式验证中文汉字输入 103 实例089 使用正则表达式验证输入字符串 104 3.7...
对每个主题都使用了范例说明,从Perl变量、正则表达式,到编写报表、CGI脚本和网络应用,并对范例程序进行了解释。读者可以很容易地通过这些范例掌握Perl语言的语法。附录含有完整的函数和定义、命令行开关、特殊...
15.3.3 执行SQL语句 242 15.3.4 获得查询结果集中的记录数 243 15.3.5 获得结果集中的某一条记录 244 15.3.6 逐行获取结果集中的每一条 15.3.6 记录 245 15.3.7 结果集的分页 248 15.3.8 用户动态添加记录 249 15.3....