import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author QuarterLifeForJava
*/
public class Test{
public static void main(String[] args) {
System.out.println(testPrintSQL("H002",12,1009));
String sql = "SELECT rat.id,rat.sName,rat.dApplyDate,rat.tiRestType,rat.dStartDate,rat.dEndDate,rat.fInterval "+
"FROM restapplytbl rat "+
"WHERE rat.id IN"+
"("+
" SELECT rt.iRestApplyId "+
" FROM restprocesstbl rt "+
" WHERE rt.id IN"+
" ("+
" SELECT pmt.smissionid "+
" FROM pendingmissiontbl pmt "+
" WHERE pmt.imissionkindid=?"+
" AND pmt.imissionkinddetailsid=?"+
" AND pmt.smissionexecutor=?"+
" )"+
")";
String worknum = "H002";
int missionKindId = 12;
int missionKindDetailsId = 1009;
//顺序要对好
Object obj[] = new Object[]{missionKindId,missionKindDetailsId,worknum};
System.out.println(createSql(sql,obj));
}
//简单自动拼接SQL语句
public static String createSql(String sql, Object pargams[]) {
for (int i = 0; i < pargams.length; i++) {
Pattern p = Pattern.compile("\\?");
Matcher m = p.matcher(sql);
if (pargams[i] instanceof Integer) {
sql = m.replaceFirst(String.valueOf((int) pargams[i]));
} else if (pargams[i] instanceof Long) {
sql = m.replaceFirst(String.valueOf((Long) pargams[i]));
} else if (pargams[i] instanceof Float) {
sql = m.replaceFirst(String.valueOf((Float) pargams[i]));
} else if (pargams[i] instanceof Double) {
sql = m.replaceFirst(String.valueOf((Double) pargams[i]));
} else {
sql = m.replaceFirst("'" + (String) pargams[i] + "'");
}
}
return sql;
}
//简单示例
public static String testPrintSQL(String worknum, int missionKindId,int missionKindDetailsId){
String sql = "SELECT rat.id,rat.sName,rat.dApplyDate,rat.tiRestType,rat.dStartDate,rat.dEndDate,rat.fInterval "+
"FROM restapplytbl rat "+
"WHERE rat.id IN"+
"("+
" SELECT rt.iRestApplyId "+
" FROM restprocesstbl rt "+
" WHERE rt.id IN"+
" ("+
" SELECT pmt.smissionid "+
" FROM pendingmissiontbl pmt "+
" WHERE pmt.imissionkindid="+missionKindId+
" AND pmt.imissionkinddetailsid="+missionKindDetailsId+
" AND pmt.smissionexecutor="+"'"+worknum+"'"+
" )"+
")";
return sql;
}
}
其他参考:
LineNumberReader read = new LineNumberReader(new BufferedReader(new FileReader("D://a.txt")));
String line = read.readLine();
Matcher matcher = Pattern.compile("正则").matcher(line);
matcher.useTransparentBounds(true).useAnchoringBounds(false);
int pos = 0;
int endPos = line.length();
while (pos < endPos) {
matcher.region(pos, endPos);
if (matcher.lookingAt()) {
//line = line.replace(matcher.group(), "a");
//line = line.replaceAll(matcher.group(1), "20");
System.out.println(matcher);
pos = matcher.end();
}
}
//System.out.println(line);
分享到:
相关推荐
动态拼接sql语句工具类,拼接where后面语句 配合原生jdbc仿动态sql注入 if (ObjectUtil.isNotEmpty(maxLat)&&ObjectUtil.isNotEmpty(minLat)){ sqlParamList.add(new SqlParam("lat",minLat, SqlOpEnum.GE)); ...
易语言动态拼接sql语句源码,动态拼接sql语句
动态拼接sql语句.rar 动态拼接sql语句.rar 动态拼接sql语句.rar 动态拼接sql语句.rar 动态拼接sql语句.rar 动态拼接sql语句.rar
使用Java自定义注解来拼接SQL查询语句,方便使用。
通过EXCEL公式,拼接Oracle数据库插入语句。开发过程造数测试或导入初始化数据的时候很方便。
SQL语句格式化工具,可语法加亮显示,可将大段SQL拼成程序代码,免去手工拼接之苦。也可将代码还原成SQL,便于在数据库IDE中查询调试。操作简单,省去不少拼接的时间,推荐使用。
SQL语句拼接
利用反射动态拼接sql。 daohelper属于DAL层,objectdata类属于BLL层,BLL层引用DAL层。映射数据的表继承objectdata类。例如,数据表book,根据字段与属性一一对应的方式创建book类,插入数据库时,直接book.save()
C#泛型、反射实例,分层,自动生成sql语句
sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术
MyBatis动态拼接SQL
Delphi中sql语句的使用总结 Delphi中sql语句的使用总结 Delphi中sql语句的使用总结
sql拼接:不要拼接Sql,而要使用参数的好处 在实际开发中,经常会需要对数据库进行访问,最常见的开发方法就类似
针对不确定的查询参数,简化SQL语句的拼写代码。目前支持Oracl及MySql数据库
易语言源码易语言动态拼接sql语句源码.rar
反射获取传入对象的属性拼接sql语句实现增、删、改
NULL 博文链接:https://yxgyh.iteye.com/blog/1431680
SQL拼接替换程序能够替换Java开发中SQL语句中参数,以便于在数据库中执行Java开发中SQL语句。直接将参数替换SQL中的问号。填写要替换的SQL语句及参数,能够生成SQL代码。需要Java中写好的SQL填写上,直接将参数逗号...