如何在sql语句(Java)中大写列和表名?

时间:2016-04-05 11:46:14

标签: java sql sql-server string parsing

我有一个字符串,可以容纳任何类型的sql语句(选择,更新,删除,插入)

我想在该语句中用大写的列和表名。

让我们说:

select id from person where name="Dave"

我想要

 select ID from PERSON where NAME="Dave"

到目前为止,我已经在Java中找到了一些Sql解析器,但我想知道是否还有另一种更简单的方法来解析sql并重建它。

修改

为了进一步澄清这个问题,数据库整理是土耳其语,我试图解决的问题是土耳其问题"。 DB中的列/表的名称都是大写的,但Java应用程序生成带有小写列和表的sql语句

3 个答案:

答案 0 :(得分:1)

您应该使用带有绑定变量的预准备语句。通过这样做,您可以大写查询,然后在任何情况下放置绑定变量。

例如:

 String query = "select id from person where name=?"
 Connection con = .... ;
 PreparredStatement ps = con.prepareStatement(query.toUpperCase());
 ps.setString(1, "Dave");

 ResultSet rs = ps.executeQuery();

希望这有帮助。

答案 1 :(得分:0)

我不确定我是否正确理解了您的问题,但如果您想以大写形式检索特定的列名,那么您的查询将会是这样的,

SELECT id AS ID FROM person WHERE name = "Dave";

答案 2 :(得分:0)

您可以这样做:

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 FROM NERSON NAME = Dave

希望有所帮助