簡體   English   中英

如何在sql語句(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM