您可以使用这种方法来做到这一点,在此替换掉每一个?在查询中使用(.*),然后根据它创建一个模式.然后应用另一对具有实际值的字符串,然后打印出将按?动态创建的所有组中的值.存在于查询字符串中.

这是执行相同操作的Java代码.

@H_403_6@// This map stores your paired queries where key stores the placeholder query and value stores the query having actual parameters.

Map pairMap = new HashMap<>();

pairMap.put("SELECT * FROM my_table t WHERE (t.attr1 = ? AND t.attr2 = ?) OR t.attr3= ?","SELECT * FROM my_table t WHERE (t.attr1 = 3 AND t.attr2 = 'str') OR t.attr3= 4");

pairMap.put("UPDATE my_table SET attr2 = ? WHERE attr5 = ?","UPDATE my_table SET attr2 = 'Is it true?' WHERE attr5 = 'What is it?'");

pairMap.forEach((k,v) -> {

System.out.println("For query: "+k);

k = k.replaceAll("([*+^$()\\[\\]{}])","\\\\$1"); // this escapes all the characters that have special meaning in regex so they get treated as literal characters

k = k.replaceAll("\\?","(.*)");

Pattern p = Pattern.compile(k);

Matcher m = p.matcher(v);

if (m.matches()) {

for (int i=0;i

System.out.println(m.group(i+1));

}

} else {

System.out.println("Didn't match");

}

System.out.println();

});

哪个打印,

@H_403_6@For query: SELECT * FROM my_table t WHERE (t.attr1 = ? AND t.attr2 = ?) OR t.attr3= ?

3

'str'

4

For query: UPDATE my_table SET attr2 = ? WHERE attr5 = ?

'Is it true?'

'What is it?'

如您所见,该代码适用于占位符?的任何可变值.在查询字符串中,并打印配对查询中存在的所有具有实际值的值.

java sql参数_java-从SQL查询检索参数相关推荐

  1. java sql函数_Java调用Sql存储过程实例讲解

    1.使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转 义序列.不带参数的 call 转义序列的语法如下所示: {call procedure-n ...

  2. java 防止sql注入_Java中SQL注入以及如何轻松防止它

    java 防止sql注入 什么是SQL注入? (What is SQL Injection?) SQL Injection is one of the top 10 web application v ...

  3. java直接对list使用sql语句_Java和SQL语句阶段考试错题集

    一.Java部分 1.选择题 3.关于 Java 堆,下面说法错误的是(). A.所有类的实例都是在堆上分配内存. B.对象所占的堆内存是由自动内存管理系统回收. C.堆内存由存活和死亡的对象,空闲碎 ...

  4. java sql 排序_JAVA像SQL一样对List对象集合进行排序

    在开始之前,我先卖个关子提一个问题:假设我们有一个Movie类,这个类有三个成员变量分别是starred(是否收藏), title(电影名称), rating(评分).你知道怎么对一个Movie对象组 ...

  5. java sql脚本_java执行sql脚本

    package com.unmi.db; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Con ...

  6. java 读取.sql文件_java解析sql文件

    packagecom.athena.ckx.util;importjava.io.FileInputStream;importjava.io.InputStream;importjava.sql.Co ...

  7. java sql脚本_Java 执行 SQL 脚本文件

    是拷贝的别人的,以备学习 package com.unmi.db; import java.io.FileInputStream; import java.io.InputStream; import ...

  8. java中的命令行参数_Java中的命令行参数

    java中的命令行参数 Command-line arguments in Java are used to pass arguments to the main program. If you lo ...

  9. java 接收命令行参数_java中的命令行参数_Java中的命令行参数

    java中的命令行参数 Command-line arguments in Java are used to pass arguments to the main program. If you lo ...

最新文章

  1. 一位技术人员成长的烦恼及我的分析(转)
  2. 小白学python买什么书-终于明白小白学习python怎么学
  3. php post验证输入,$.post()登录验证功能
  4. IOCP中在WSASend以及WSARecv的时候出现WSA_IO_PENDING情况的说明
  5. linux kvm百度云,容器与云|如何在 Ubuntu Linux 上使用 KVM 云镜像
  6. 自己动手制作一门语言(1)波罗语
  7. mysql数据库1对n_MySQL数据库InnnoDB引擎事务说明
  8. Merge k Sorted Lists leetcode java
  9. 《ArcGIS Runtime SDK for .Net开发笔记》--介绍与环境搭建
  10. C#操作内存读写方法是什么呢?让我们来看看具体的实例实现:
  11. ios protobuf java_iOS 集成Protobuf,转换proto文件
  12. 【转载】DEDE与DISCUZ整合积分同步[会员表,积分表
  13. DSPE-PEG-TPP 磷酸三苯酯修饰聚乙二醇PE磷脂
  14. linux下安装xamp
  15. 【Vue报错】This is probably not a problem with npm. There is likely additional logging output above
  16. Boost搜索引擎项目
  17. JavaScript对象与内置对象——对象(一)
  18. Ai智能对话页面html,js人工智能对话框 - osc_q50is30g的个人空间 - OSCHINA - 中文开源技术交流社区...
  19. linux 查看发行版本
  20. 深入HotSpot虚拟机源码探究synchronized底层实现原理【万字总结synchronized】

热门文章

  1. FreeRTOS 之二 Tracealyzer for FreeRTOS(FreeRTOS+Trace) 详解(源码解析+移植)
  2. springboot后台怎么获取前端传过来的excel_开源商城系统包含后台管理和手机端
  3. Cpp 对象模型探索 / placement new 实现原理
  4. cka教程_2020年11月新版CKA考试心得
  5. 0xbc指令 st75256_DDOS终极加速列车算法
  6. 项目总结(3.DIBR技术项目总结(1.TOF相机及标定相关))
  7. ZT:与其怨天尤人,不如全力以赴;若想改变世界,你必须先从改变自己开始!...
  8. codeforces 719C (复杂模拟-四舍五入-贪心)
  9. hdu 2049 不容易系列之(4)——考新郎
  10. 移动搜索引擎-网页信息预处理