`

查询条件拼接SQL

阅读更多
public static void query() throws ParseException {
		String jsonStr = "{applyNo:{like:'A001'}, name:{=:'张三'}, amt:{>: 600, oper: 'or', <: 1000}}";

		JSONObject json = new JSONObject(jsonStr);

		Iterator<String> iter = json.keys();

		StringBuffer jpql = new StringBuffer("select * from table");

		// 放置参数
		List<Object> params = new ArrayList<Object>();
		int index = 0;
		
		boolean firstFlag = true;
		while (iter.hasNext()) {
			// 查询字段
			String key = iter.next();
			JSONObject obj = json.getJSONObject(key);

			if (firstFlag) {
				firstFlag = false;
				jpql.append(" where ");
			} else {
				jpql.append(" and ");
			}

			jpql.append(key).append(" ");

			Iterator<String> valIter = obj.keys();

			while (valIter.hasNext()) {
				// 查询条件
				String valKey = valIter.next();

				// 不是操作符,就执行
				if (!"oper".equals(valKey)) {

					Object valObj = obj.get(valKey);

					jpql.append(valKey).append(" ?_").append(index).append(" ");

					if (valIter.hasNext()) {
						Object oper = obj.get("oper");
						jpql.append(" ").append(oper).append(" ");
					}
					
					params.add(valObj);
					index++;
				}
			}

		}

		System.out.println(jpql);
		System.out.println(Arrays.toString(params.toArray()));
	}
分享到:
评论

相关推荐

    易语言动态拼接sql语句

    以下是一个简单的易语言动态拼接SQL查询的示例: ```易语言 .数据库连接 = 创建数据库连接("SQLite", "database.db") .动态SQL = "SELECT * FROM 表名 WHERE 条件字段 = '%s'" .条件值 = 输入框("请输入条件值:") ....

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

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

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

    ### SQL拼接与参数化查询的重要性 在软件开发过程中,特别是涉及到数据库操作的应用程序中,SQL语句的构造和执行是非常关键的一步。传统的做法往往采用字符串拼接的方式来构建SQL语句,例如: ```csharp string ...

    MyBatis动态拼接SQL

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

    Java 使用注解拼接SQL语句

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

    动态拼接sql语句.rar

    动态拼接SQL语句在IT行业中是一个常见的编程实践,尤其在数据库操作中,它允许根据程序运行时的条件或变量来构建SQL查询。这一技术在处理复杂查询逻辑、灵活的数据筛选以及减少代码冗余等方面具有显著的优势。然而,...

    SQL语句拼接

    在实际开发过程中,为了实现动态SQL查询的功能,开发者常常需要根据不同的条件来构造SQL语句。这种根据条件动态生成SQL的过程就被称为SQL语句拼接。这种方式尤其适用于那些查询条件不确定或可变的场景,例如用户可以...

    SqlUtils工具类,Sql IN 条件拼接工具类

    总之,`SqlUtils`工具类是Java开发中处理SQL查询的利器,它可以简化SQL条件的构建,提升代码质量,降低潜在的安全风险。通过理解和利用这样的工具类,开发者能够更专注于业务逻辑,而不是底层的SQL拼接细节。

    sql\(很长的l模糊查询拼接)sql存储过程

    标题中的“SQL(很长的L模糊查询拼接)”意味着该存储过程主要涉及的是通过字符串拼接的方式动态构建SQL查询语句,这里的“L”可能是指“Long”,即长字符串处理;而“模糊查询”则是指通过部分匹配的方式来检索数据...

    页面传入多个条件——sql语句的拼接

    2. **根据条件拼接SQL语句**: - **bookID条件**: ```java if (bookID != 0) { sql = sql + " and bookID=" + bookID; } ``` 如果`bookID`不为空,则将其添加到SQL语句中。 - **bookName条件**: ```...

    SQL拼接工具包API 支持Oracle/PostgreSQL/MySql

    简化sql拼接过程,提升开发效率,减少拼接错误。 可以拼接select、update、delete语句以及where条件语句。 拼接where条件可自动组织参数并返回。 支持andEq(), andGt(), andGe(),andLt(), andLe(), andEqDate(), ...

    StringBuffer 拼接查询条件

    这里需要注意的是,在拼接SQL时加入了前缀`"and"`,这是因为SQL语句中通常会有一个固定的起始部分(例如`SELECT * FROM table WHERE`),而动态部分则由一系列的`AND`条件构成。为了避免第一个动态条件前出现不必要...

    java将对象以sql条件方式进行拼接

    通过反射,给一个对象,将对象中属性的值,以sql条件方式返回。

    自动拼接sql

    在IT行业中,自动拼接SQL是一项常见的需求,特别是在开发数据库应用程序时。这个“自动拼接SQL第二版本”工具显然设计用于帮助程序员构建SQL语句,尤其是那些包含动态内容的复杂语句。它允许用户将多个参数合并成一...

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

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

    Java如何使用Query动态拼接SQL详解

    * 灵活的数据查询:Query语言可以根据不同的条件和参数来动态地拼接SQL语句,从而实现灵活的数据查询和处理。 * 高效的执行:Query语言可以高效地执行SQL语句,从而提高系统的性能。 * 安全的数据访问:Query语言...

    《kettle中实现动态SQL查询》博客文章示例代码

    本文将深入探讨如何在Kettle中实现动态SQL查询,这对于处理复杂的数据库操作和数据迁移至关重要。我们将讨论问号占位符和命名参数这两种方法,并分析它们的区别。 首先,让我们理解什么是动态SQL查询。在传统的SQL...

    CPQuery 解决拼接SQL的新方法

    对于动态查询,比如一个根据用户输入过滤条件的查询界面,传统的做法是根据条件动态构建SQL语句,但这种方式存在安全隐患。使用CPQuery,开发者可以在构建SQL字符串时使用参数占位符,将实际值通过命令对象的参数...

    kettle实现SQL关联查询

    "Merge Join" Step就是其中之一,它允许用户实现类似SQL中的各种类型关联查询,包括INNER JOIN、LEFT JOIN、RIGHT JOIN以及FULL JOIN。 INNER JOIN是SQL中的一种基本联接类型,它返回两个表中存在匹配的记录。在...

Global site tag (gtag.js) - Google Analytics