`
QuarterLifeForJava
  • 浏览: 178228 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

简单自动拼接SQL语句

阅读更多
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同样具有重要的应用价值。易语言以其独特的汉字编程风格,降低了编程的...

    动态拼接sql语句工具类,拼接where后面语句

    动态拼接sql语句工具类,拼接where后面语句 配合原生jdbc仿动态sql注入 if (ObjectUtil.isNotEmpty(maxLat)&&ObjectUtil.isNotEmpty(minLat)){ sqlParamList.add(new SqlParam("lat",minLat, SqlOpEnum.GE)); ...

    Java 使用注解拼接SQL语句

    "Java使用注解拼接SQL语句"是一个常见的实践,它使得动态构建SQL查询变得更为简洁和可维护。这种技术通常与ORM(对象关系映射)框架如MyBatis或Hibernate结合使用,但也可以通过自定义处理逻辑实现。 1. **自定义...

    动态拼接sql语句.rar

    以下是一个简单的易语言动态拼接SQL语句的例子: ```易语言 .条件 = "age &gt; " + .用户输入的年龄 .sql = "SELECT * FROM users WHERE " + .条件 .结果 = 执行SQL(.sql) ``` 在这个例子中,`.条件`变量根据用户的年龄...

    开发sql语句拼接自动格式化工具

    通过这款工具,开发者可以快速地将大段的SQL语句进行自动格式化,使得代码更加清晰、易读,同时也支持将已经拼接好的程序代码还原为原始的SQL语句,方便在数据库集成开发环境(IDE)中直接进行查询和调试。...

    自动生成SQL语句_C#_sql_

    Dapper支持动态SQL和参数化查询,可以在C#代码中拼接SQL语句,并自动处理参数绑定,减少了SQL注入的风险。 三、手工构建SQL字符串 如果你不希望使用ORM,也可以手工构建SQL字符串。C#的string类提供了丰富的字符串...

    EXCEL公式拼接SQL插入语句,导入数据

    通过EXCEL公式,拼接Oracle数据库插入语句。开发过程造数测试或导入初始化数据的时候很方便。

    SQL语句拼接

    尽管使用`StringBuffer`拼接SQL语句是一种简单有效的方法,但它也存在一些潜在的安全隐患,尤其是在处理用户输入时。例如,如果用户提交恶意输入,可能会导致SQL注入攻击。为了避免这种情况的发生,建议采用以下措施...

    前台拼接SQL语句

    在IT行业中,数据库操作是日常开发中的重要环节,而“前台拼接SQL语句”这一话题则涉及到Web应用的安全性和效率。通常,前端(前台)处理业务逻辑是不常见的,因为这可能导致敏感信息泄露和SQL注入等安全问题。这篇...

    SQL语句拼接工具,简化SQL语句拼写代码

    随着数据库应用的日益复杂,编写和管理SQL语句变得越来越繁琐,尤其是在处理动态查询时,需要根据用户输入或业务条件拼接SQL字符串。为了解决这个问题,出现了SQL语句拼接工具,如描述中提到的,它能帮助简化SQL语句...

    sql拼接:不要拼接Sql,而要使用参数的好处

    传统的做法往往采用字符串拼接的方式来构建SQL语句,例如: ```csharp string sql = "SELECT * FROM table1 WHERE name='" + name + "'"; ``` 这种方式虽然简单直观,但在实际应用中存在一些潜在的风险和不足之处...

    MyBatis动态拼接SQL

    在某些场景下,我们可能需要根据业务逻辑动态地拼接SQL语句,以实现更复杂的查询需求。这就是MyBatis动态SQL的功能所在。 动态SQL是MyBatis的一大特色,它使得我们能够在运行时根据条件构建SQL语句。MyBatis通过`...

    C#泛型、反射实例、自动生成sql语句

    本篇文章将详细探讨C#中的泛型、反射以及如何利用这些特性来实现自动生成SQL语句。 **一、C# 泛型** 泛型是C#的一个核心特性,它允许我们编写类型参数化的代码,即代码可以在多种数据类型上工作,而无需进行显式的...

    c# 反射获取传入对象的属性拼接sql语句实现增、删、改、查

    利用反射动态拼接sql。 daohelper属于DAL层,objectdata类属于BLL层,BLL层引用DAL层。映射数据的表继承objectdata类。例如,数据表book,根据字段与属性一一对应的方式创建book类,插入数据库时,直接book.save()

    sql语句拼接+游标技术

    sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术sql语句拼接+游标技术

    易语言源码易语言动态拼接sql语句源码.rar

    在“易语言源码易语言动态拼接SQL语句源码.rar”这个压缩包中,我们可以预见到包含的是使用易语言编写的关于动态构建SQL语句的代码示例。动态SQL是在程序运行时根据需要构建SQL语句的一种技术,这种技术在处理复杂或...

    pb编写的execel自动生成sql语句

    标题中的“pb编写的excel自动生成sql语句”指的是使用PowerBuilder(PB)这款软件开发工具,结合Excel电子表格,创建了一个程序或脚本,能够根据用户在Excel中输入的数据自动生成相应的SQL(结构化查询语言)语句。...

    自动拼接sql

    这个“自动拼接SQL第二版本”工具显然设计用于帮助程序员构建SQL语句,尤其是那些包含动态内容的复杂语句。它允许用户将多个参数合并成一个完整的SQL字符串,以便在执行时通过`EXEC`函数使用。 在SQL中,`EXEC`命令...

    Delphi中sql语句的使用总结

    ### Delphi中SQL语句的使用总结 在Delphi中使用SQL语句是与数据库进行交互的重要手段之一。本文将详细介绍如何在Delphi环境中构造和执行SQL查询,并给出具体的示例来帮助理解。 #### 一、基本SQL查询的构建 在...

Global site tag (gtag.js) - Google Analytics