![](/img/trans.png)
[英]How do I make sure an input SQL Statement has valid column names using Java?
[英]How do I uppercase column and table names in a sql statement(Java)?
我有一個可以容納任何類型的sql語句的字符串(選擇,更新,刪除,插入)
我想在該語句中將列名和表名大寫。
假設我們有:
select id from person where name="Dave"
而且我要
select ID from PERSON where NAME="Dave"
到目前為止,我已經在Java中找到了一些Sql解析器,但是我想知道是否還有另一種更簡單的方法來解析sql並重新構建它。
編輯
只是為了進一步澄清問題,數據庫排序是土耳其語,而我要解決的問題是“土耳其語i問題”。 DB中的列/表名稱全為大寫,但是Java應用程序使用小寫的列和表生成sql語句
您應該使用帶有綁定變量的准備好的語句。 這樣,您可以大寫查詢,然后在任何需要的情況下放置綁定變量。
例如:
String query = "select id from person where name=?"
Connection con = .... ;
PreparredStatement ps = con.prepareStatement(query.toUpperCase());
ps.setString(1, "Dave");
ResultSet rs = ps.executeQuery();
希望這可以幫助。
我不確定我是否正確理解了您的問題,但是如果您想以大寫形式檢索特定的列名,那么查詢將如下所示:
SELECT id AS ID FROM person WHERE name = "Dave";
您可以執行以下操作:
public String queryText(final String message, final String... args) {
return String.format(message.toUpperCase().replace("?", "%s") + "%n", args);
}
並這樣稱呼:
System.out.println(queryText("select id from person where name=?", "Dave"));
輸出:SELECT ID FROM PERSON WHERE NAME = Dave
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.