1

I need to replace a value between two dollar($) symbol.

below is the way i tried but i dont think it is an elegant way to do.

String queryNoAdditionalFilter= SELECT PRODUCTNAME,PRODUCTSKEY FROM PRODUCTS WHERE PRODUCTID=$productid$

    int start= queryNoAdditionalFilter.indexOf("$");
     int end= queryNoAdditionalFilter.lastIndexOf("$");
     String valueSubstitutedToFilter1 = queryNoAdditionalFilter.substring(start+1, end);
      String keyToReplace = "\\$"+valueSubstitutedToFilter1+"\\$";
     String valueSubstitutedToFilter2=queryNoAdditionalFilter.replaceAll(keyToReplace, "401250");


final outcome is :SELECT PRODUCTNAME,PRODUCTSKEY FROM PRODUCTS WHERE PRODUCTID=401250 

which is the best way to implement this logic through java code?

Need your advise.

4

1 回答 1

3

我认为你真的应该使用PreparedStatement

尽管 PreparedStatement 对象可用于不带参数的 SQL 语句,但您可能最常将它们用于带参数的 SQL 语句。使用带参数的 SQL 语句的优点是您可以使用相同的语句并在每次执行时为其提供不同的值。

这是如何使用它(来自链接的文档)

String updateString =
    "update " + dbName + ".COFFEES " +
    "set SALES = ? where COF_NAME = ?";
updateSales = con.prepareStatement(updateString);
updateSales.setInt(1, e.getValue().intValue());
updateSales.setString(2, e.getKey());
于 2013-02-11T11:17:27.680 回答