0
请帮助解决下面提到的错误:MySQL错误时,选择像
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法使用近“r.Username LIKE '%usernameanswer%' 和r.Createtime>手动NOW() - 间隔30秒
代码
public List <CorrekctanswerModel> answerlist(String usernameanswer) throws Exception {
log.info("daomimpl" + usernameanswer);
List<CorrekctanswerModel> answerarray = new ArrayList<CorrekctanswerModel>();
Connection c = null;
PreparedStatement ps = null;
ResultSet rs = null;
String sql = " select s.NAME as Subject, d.value as variant, r.Username, r.UserAnswer, r.Correctanswer, r.Createtime from resultlog r " +
" inner join test_table t on t.ID = r.QuestionId " +
" inner join subject s on s.ID= t.SUBJECT " +
" inner join dictionary d on d.ID = t.Variant" +
"where r.Username LIKE '%usernameanswer%' and r.Createtime > NOW() - INTERVAL 30 SECOND " ;
try {
c = DbHelper.getConnection();
if (c != null) {
ps = c.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
CorrekctanswerModel rep = new CorrekctanswerModel();
rep.setSubject(rs.getString("Subject"));
rep.setVariant(rs.getString("variant"));
rep.setUsername(rs.getString("Username"));
rep.setUseranswer(rs.getString("UserAnswer"));
rep.setCorrekctanswer(rs.getString("Correctanswer"));
rep.setCreatedate(rs.getDate("Createtime"));
answerarray.add(rep);
}
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
JdbcUtility.close(c, ps, rs);
}
return answerarray;
}
请分享完整的SQL语句,否则我们可能无法完全为您调试它。 –
我已添加完整的代码。在日志中,你会看到我获得“usernameanswer”。但我不能在sql中使用。 –
在'where'之前放置一个空格,如下所示:'“其中r.Username LIKE'%usernameanswer%'...”'。然而,你真正需要的是哪里?'用户名LIKE'%“+ usernameanswer +”%'和...“' – zedfoxus