iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
佛心分享-我的私藏工具箱

正則!好好表達系列 第 20

用Regex組SQL的insert與update欄位

  • 分享至 

  • xImage
  •  

接手修改舊案難免要自己組SQL較快,也不用額外寫POJO,所用一支java main來組Java呼叫JDBC的statement用的SQL字串也較省工些。
假設所有欄位名稱存在List<String>資料型態的list變數下,可以做成以下SQL的Statement

List<String> list = new ArrayList<String>();
list.add("user_id");
list.add("password");
list.add("username");
System.out.println(list.toString().replaceAll("[\\[\\]]", ""));
System.out.println(list.toString().replaceAll("[^,]+", " ?"));
System.out.println(list.toString().replaceAll("[\\[\\]]", "").replaceAll("[^,]+", "$0 = ?"));
System.out.println(list.toString().replaceAll("[\\[\\]]", "").replaceAll("[^,]+", "$0 = ?").replaceAll(",", " and"));

會得到以下結果:

user_id, password, username # insert into table (欄位清單)
 ?, ?, ? # insert into table (...) values (問號清單)
user_id = ?, password = ?, username = ? # update table set (欄位鍵值對)
user_id = ? and password = ? and username = ? # select where (條件式)

上一篇
Perl的跨行比對
下一篇
重組podman images內容輸出
系列文
正則!好好表達30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言