JDBC 模板为使用 "like" 的查询提供错误

JDBC template giving error for Query using "like"

我不知道如何在下面的查询中使用 %?%。它给我错误:

PreparedStatementCallback; uncategorized SQLException for SQL [select * from names where name like '%?%']

问题:

String sql = "select * from names where name like ?";
List<NamesModel> names = jdbcTemplate.query(sql, new Object[]{searchName}, new NamesRowMapper());

您的异常告诉您不能绑定到引用值。以下将不起作用:

String sql = "select * from names where name like '%?%'";
List<NamesModel> names = jdbcTemplate.query(sql, 
        new Object[]{ searchName }, new NamesRowMapper());

正确的做法是在searchName参数值周围加上%

String sql = "select * from names where name like ?";
List<NamesModel> names = jdbcTemplate.query(sql, 
        new Object[]{ "%" + searchName + "%"}, new NamesRowMapper());