[英]How to get column parameters from SQL query (JOOQ)
我有一個問題,是否有可能從JOOQ -java的SQL查詢中獲取參數。
我正在使用這樣的東西:
for (Query query: sqlQueries){
for (Param param: query.getParams().values()) {
System.out.println("P: "+ param.getName());
}
}
SQL查詢:
...
insert into `filetest` (`Priezvisko`, `Meno`, `Vek`) values ('Kotov', 'Peter', '22');
insert into `filetest` (`Priezvisko`, `Meno`, `Vek`) values ('Alhambra', 'Seat', '33');
insert into `filetest` (`Priezvisko`, `Meno`, `Vek`) values ('F50', 'Ferrari', '100');
將這樣處理(輸出):
P: Kotov
P: Peter
P: 22
P: Alhambra
P: Seat
P: 33
P: F50
P: Ferrari
P: 100
我還需要使用以下列名稱獲取輸出:
P: Priezvisko
P: Meno
P: Vek
P: Kotov
P: Peter
P: 22
... rest
是否有可能因為我不知道怎么辦? 如果我可以問,甚至有可能從查詢中獲取tableName嗎? (在我們的示例中為“ filetest”)
我為什么需要這樣做是為了讓那些參數創建CSV文件(SQL-> CSV),從提到的SQL創建CSV:
Meno,Priezvisko,Vek
"Peter","Kotov","22"
"Seat","Alhambra","33"
"Ferrari","F50","100"
特定參數恰好被“鏈接”到SQL語句中的列這一事實是您的一個相當隨意的假設。 下面的語句是一個簡單的示例,可能會破壞您的假設:
insert into `filetest` (`Priezvisko`, `Meno`, `Vek`)
values ((select 'Kotov' from dual where 1 = 0), 'Peter', '22');
現在,該語句將包含5個參數:
P: Kotov -- Relevant
P: 1 -- Irrelevant
P: 0 -- Irrelevant
P: Peter -- Relevant
P: 22 -- Relevant
您可能想使用生成的FiletestRecord
,該文件本質上是Map<Field<?>, ?>
,可以通過調用record.insert()
或record.update()
將其轉換為INSERT
或UPDATE
語句。
ctx.insertInto(FILETEST).set(filetestRecord).execute();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.