日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

java sql参数_java-从SQL查询检索参数

發(fā)布時間:2024/10/8 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java sql参数_java-从SQL查询检索参数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

您可以使用這種方法來做到這一點,在此替換掉每一個?在查詢中使用(.*),然后根據(jù)它創(chuàng)建一個模式.然后應用另一對具有實際值的字符串,然后打印出將按?動態(tài)創(chuàng)建的所有組中的值.存在于查詢字符串中.

這是執(zhí)行相同操作的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查询检索参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。