1.获取到以下信息 String originalSql = SELECT * FROM table_name WHERE 1 = 1 AND bbbbb = ? AND aaaa = ? ORDER BY create_time DESC Map<String, Object> parameters = new HashMap<>(); parameters.put("aaaa", "3333"); parameters.put("bbbbb", "44444"); 2.如何将parameters中的值对originalSql中的字段后面的问号进行一一对应的替换
时间: 2024-04-12 20:27:29 浏览: 82
您可以使用Java中的字符串替换方法`replaceAll()`来实现将原始SQL语句中的问号替换为参数值。以下是一个示例代码:
```java
String originalSql = "SELECT * FROM table_name WHERE 1 = 1 AND bbbbb = ? AND aaaa = ? ORDER BY create_time DESC";
Map<String, Object> parameters = new HashMap<>();
parameters.put("aaaa", "3333");
parameters.put("bbbbb", "44444");
String replacedSql = originalSql;
for (Map.Entry<String, Object> entry : parameters.entrySet()) {
String paramName = entry.getKey();
Object paramValue = entry.getValue();
replacedSql = replacedSql.replaceAll("\\?", paramValue.toString());
}
System.out.println(replacedSql);
```
在上述代码中,我们使用`replaceAll()`方法将原始SQL中的问号(`\\?`)替换为相应的参数值(`paramValue.toString()`)。最终替换后的SQL语句存储在`replacedSql`变量中,并通过`System.out.println()`打印出来。
输出结果将是替换后的SQL语句,如下所示:
```
SELECT * FROM table_name WHERE 1 = 1 AND bbbbb = 44444 AND aaaa = 3333 ORDER BY create_time DESC
```
请注意,这里假设参数值都是字符串类型。如果有其他类型的参数值,您可能需要进行相应的转换。
阅读全文