苦恼的椰子 · 浮点数float转换成十六进制字符串的方法( ...· 1 周前 · |
逆袭的小笼包 · 认识、使用C++vector和array-阿 ...· 1 周前 · |
豪情万千的花卷 · Spring学习(十):JdbcTempla ...· 1 周前 · |
细心的匕首 · 如何在dotnet命令失败后停止powers ...· 1 周前 · |
豁达的黄豆 · 如何在数据资源平台物理化数据字典_云原生数据 ...· 1 周前 · |
坚强的鸵鸟 · 大众探岳拆解要点,喜欢自己动手DIY必看-有车以后· 7 月前 · |
粗眉毛的伏特加 · 百度知道 - 全球领先中文互动问答平台· 1 年前 · |
叛逆的太阳 · 头文字D里面的经典车型,时至今日都怎么样了? ...· 1 年前 · |
风流倜傥的烈酒 · 脑出血中风康复-家属实践(手术后注意事项) ...· 1 年前 · |
当您在上调用任何setXxx()方法时PreparedStatement,都会收到此错误,而SQL查询字符串对此没有任何占位符?。
例如,这是错误的:
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)"; // ...
preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); // Fail. preparedStatement.setString(2, val2); preparedStatement.setString(3, val3); 您需要相应地修复SQL查询字符串以指定占位符。
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)"; // ...
preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); preparedStatement.setString(2, val2); preparedStatement.setString(3, val3); 注意与参数指标开始1和你没有需要引用的占位符,如下所示:
String sql = "INSERT INTO tablename (col1, col2, col3) VALUES ('?', '?', '?')"; 否则,您仍然会遇到相同的异常,因为SQL解析器随后会将它们解释为实际的字符串值,因此无法再找到占位符。来源:stack overflow