优化这个代码 criteria.andlike( propery: "goodslame",value: "%"+ godslistRequestDto.getKeyword() replaceAll( regex "%", replacement: " !1l%") + "%");
时间: 2023-07-02 17:19:24 浏览: 136
这段代码的主要作用是在 SQL 查询中添加一个模糊查询条件,查询属性中包含指定关键字的数据。优化建议如下:
1. 对于字符串拼接操作,推荐使用 StringBuilder 类来提高性能。
2. 为了避免 SQL 注入攻击,建议使用 PreparedStatement 类来构建 SQL 查询语句。
3. 可以将 "%" 和 "!1l%" 转义成常量,方便代码维护和理解。
改进后的代码如下:
```
StringBuilder sqlBuilder = new StringBuilder();
sqlBuilder.append("SELECT * FROM goods WHERE goodslame LIKE ?");
String keyword = "%" + godslistRequestDto.getKeyword().replaceAll("%", "!1l%") + "%";
PreparedStatement ps = conn.prepareStatement(sqlBuilder.toString());
ps.setString(1, keyword);
ResultSet rs = ps.executeQuery();
```
这样可以提高代码的可读性和性能,同时也能更好地保护数据库安全。
阅读全文