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语句是一种常见的技术,它允许程序在运行时根据需要构建SQL查询。在易语言这个中国本土化的编程环境中,动态拼接SQL同样具有重要的应用价值。易语言以其独特的汉字编程风格,降低了编程的...
动态拼接sql语句工具类,拼接where后面语句 配合原生jdbc仿动态sql注入 if (ObjectUtil.isNotEmpty(maxLat)&&ObjectUtil.isNotEmpty(minLat)){ sqlParamList.add(new SqlParam("lat",minLat, SqlOpEnum.GE)); ...
"Java使用注解拼接SQL语句"是一个常见的实践,它使得动态构建SQL查询变得更为简洁和可维护。这种技术通常与ORM(对象关系映射)框架如MyBatis或Hibernate结合使用,但也可以通过自定义处理逻辑实现。 1. **自定义...
以下是一个简单的易语言动态拼接SQL语句的例子: ```易语言 .条件 = "age > " + .用户输入的年龄 .sql = "SELECT * FROM users WHERE " + .条件 .结果 = 执行SQL(.sql) ``` 在这个例子中,`.条件`变量根据用户的年龄...
通过这款工具,开发者可以快速地将大段的SQL语句进行自动格式化,使得代码更加清晰、易读,同时也支持将已经拼接好的程序代码还原为原始的SQL语句,方便在数据库集成开发环境(IDE)中直接进行查询和调试。...
Dapper支持动态SQL和参数化查询,可以在C#代码中拼接SQL语句,并自动处理参数绑定,减少了SQL注入的风险。 三、手工构建SQL字符串 如果你不希望使用ORM,也可以手工构建SQL字符串。C#的string类提供了丰富的字符串...
通过EXCEL公式,拼接Oracle数据库插入语句。开发过程造数测试或导入初始化数据的时候很方便。
尽管使用`StringBuffer`拼接SQL语句是一种简单有效的方法,但它也存在一些潜在的安全隐患,尤其是在处理用户输入时。例如,如果用户提交恶意输入,可能会导致SQL注入攻击。为了避免这种情况的发生,建议采用以下措施...
在IT行业中,数据库操作是日常开发中的重要环节,而“前台拼接SQL语句”这一话题则涉及到Web应用的安全性和效率。通常,前端(前台)处理业务逻辑是不常见的,因为这可能导致敏感信息泄露和SQL注入等安全问题。这篇...
随着数据库应用的日益复杂,编写和管理SQL语句变得越来越繁琐,尤其是在处理动态查询时,需要根据用户输入或业务条件拼接SQL字符串。为了解决这个问题,出现了SQL语句拼接工具,如描述中提到的,它能帮助简化SQL语句...
传统的做法往往采用字符串拼接的方式来构建SQL语句,例如: ```csharp string sql = "SELECT * FROM table1 WHERE name='" + name + "'"; ``` 这种方式虽然简单直观,但在实际应用中存在一些潜在的风险和不足之处...
在某些场景下,我们可能需要根据业务逻辑动态地拼接SQL语句,以实现更复杂的查询需求。这就是MyBatis动态SQL的功能所在。 动态SQL是MyBatis的一大特色,它使得我们能够在运行时根据条件构建SQL语句。MyBatis通过`...
本篇文章将详细探讨C#中的泛型、反射以及如何利用这些特性来实现自动生成SQL语句。 **一、C# 泛型** 泛型是C#的一个核心特性,它允许我们编写类型参数化的代码,即代码可以在多种数据类型上工作,而无需进行显式的...
利用反射动态拼接sql。 daohelper属于DAL层,objectdata类属于BLL层,BLL层引用DAL层。映射数据的表继承objectdata类。例如,数据表book,根据字段与属性一一对应的方式创建book类,插入数据库时,直接book.save()
sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术
在“易语言源码易语言动态拼接SQL语句源码.rar”这个压缩包中,我们可以预见到包含的是使用易语言编写的关于动态构建SQL语句的代码示例。动态SQL是在程序运行时根据需要构建SQL语句的一种技术,这种技术在处理复杂或...
标题中的“pb编写的excel自动生成sql语句”指的是使用PowerBuilder(PB)这款软件开发工具,结合Excel电子表格,创建了一个程序或脚本,能够根据用户在Excel中输入的数据自动生成相应的SQL(结构化查询语言)语句。...
这个“自动拼接SQL第二版本”工具显然设计用于帮助程序员构建SQL语句,尤其是那些包含动态内容的复杂语句。它允许用户将多个参数合并成一个完整的SQL字符串,以便在执行时通过`EXEC`函数使用。 在SQL中,`EXEC`命令...
### Delphi中SQL语句的使用总结 在Delphi中使用SQL语句是与数据库进行交互的重要手段之一。本文将详细介绍如何在Delphi环境中构造和执行SQL查询,并给出具体的示例来帮助理解。 #### 一、基本SQL查询的构建 在...