JDBC模板使用“like”为Query提供错误

问题描述 投票:0回答:1

我在下面的查询中没有得到如何使用%?%。这给了我错误:

PreparedStatementCallback;未分类的SQL的SQLException [select * from name其中name为'%?%']

问题:

String sql = "select * from names where name like ?";
List<NamesModel> names = jdbcTemplate.query(sql, new Object[]{searchName}, new NamesRowMapper());
java mysql sql jdbctemplate
1个回答
0
投票

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

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());
© www.soinside.com 2019 - 2024. All rights reserved.