在使用java PreparedStatement 时,执行拼装的sql总是报错
1、错误的sql拼装:
// 拼装修改记录查询条件
if(changeRecord != null && !"".equals(changeRecord)){
changeRecord = URLDecoder.decode(changeRecord, "utf-8");
whereSql.append(" and content like %?% ");
vo.addAdditionalWhereParams(changeRecord);
}
2、正确的sql拼装:
// 拼装修改记录查询条件
if(changeRecord != null && !"".equals(changeRecord)){
changeRecord = URLDecoder.decode(changeRecord, "utf-8");
whereSql.append(" and content like ? ");
changeRecord = "%"+changeRecord+"%";
vo.addAdditionalWhereParams(changeRecord);
}
关键在于% 的位置,具体为什么,我也不是很清楚,希望有人可以指出确切错误原因。