[英]How do i use regexp with parameters on java-Mysql select query?
我想通過許多參數從數據庫中選擇記錄
我嘗試將列與 concat 結合起來並使用正則表達式
我可以運行此代碼,但我想使用實際參數而不是“NAME”和“1100”
String sorgu =
"Select per.* "
+ "from per_kimlik_bilgileri per"
+ " where "
+ "concat"
+ "(pkb_tc_no, '/' , pkb_ad , '/' , pkb_soyad , '/' ,
pkb_sicil_no , '/' , pkb_gorev_yeri , '/' , pkb_unvan_k , '/'"
+ " , pkb_gorev_k , '/' , pkb_istihdam_tipi ,'/', pkb_gor_drm) "
+ "REGEXP 'NAME|1100' " ;
`
我試過這種方式,但沒有用
String sorgu =
"Select per.* "
+ "from per_kimlik_bilgileri per"
+ " where "
+ "concat"
+ "(pkb_tc_no, '/' , pkb_ad , '/' , pkb_soyad , '/' ,
pkb_sicil_no , '/' , pkb_gorev_yeri , '/' , pkb_unvan_k , '/'"
+ " , pkb_gorev_k , '/' , pkb_istihdam_tipi ,'/', pkb_gor_drm) "
+ "REGEXP '"+id+"' | '"+name+"' " ; `
避免在准備好的語句中使用參數串聯。 更喜歡使用問號占位符,以及使用 prepareStatement.setString preparedStatement.setString()
替換,尤其是針對注入
....
PreparedStatement stmt = null;
try {
String sorgu =
"Select per.* from per_kimlik_bilgileri per where concat(pkb_tc_no, '/' , pkb_ad
,'/' , pkb_soyad , '/' , pkb_sicil_no , '/' , pkb_gorev_yeri , '/' , pkb_unvan_k , '/'
, pkb_gorev_k , '/' , pkb_istihdam_tipi ,'/', pkb_gor_drm) REGEXP ?|? " ;
PreparedStatement preparedStatement = conn.prepareStatement(sorgu);
preparedStatement.setString(1, name);
preparedStatement.setString(2, val);
ResultSet rs = preparedStatement.executeQuery();
......
將最后一行更改為
+ "REGEXP '"+id+"|"+name+"' " ;
'
使語法錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.