我使用java和jdbc驱动程序(java.sql),并获得了以下代码:
String clinetIP = "220.181.108.89";
String sql = "SELECT * FROM `as` WHERE `as`.ip_range LIKE '%?%'";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, clinetIP);
我得到:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
在执行statement.setString(1,clinetIP)时。
这是为什么?statement.setxxx是否在语句字符串中查找问号?我在声明中使用了一个问号,但它似乎被忽略了!
试试这个
String sql = "SELECT * FROM `as` WHERE `as`.ip_range LIKE ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, "%" + clientIP + "%");
问题内容: 关闭。 这个问题需要调试细节。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 验证我选择的选择组合框后,我无法将其插入数据库中。Tomcat给出以下错误: java.sql.SQLException:参数索引超出范围(1>参数数量,为0)。 这是怎么引起的,我该如何解决? 问题答案: 当您在上调用任何方法时,都会收到此错误
问题内容: 在Java / MariaDb中使用prepareStatement,如以下函数所示 我收到错误消息: java.sql.SQLException:参数索引超出范围(1>参数数量,为0)。 错误行号指向行 问题答案: 正如评论中提到的,您应该删除?中的引号。 另外,在中,应为正。从1开始循环计数。 总结一下:
问题内容: 在Java / MariaDb中使用prepareStatement,如以下函数所示 我收到错误消息: java.sql.SQLException:参数索引超出范围(1>参数数量,为0)。 错误行号指向行 问题答案: 如评论中所述,您应该删除?中的引号。 另外,在中,应为正。从1开始循环计数。 总结一下:
所以我创建了这个注释: 但当我运行它时,我得到了这个异常: 无法为映射设置参数:ParameterMapping{Property='name',mode=in,javatype=class java.lang.String,JDBCType=varchar,NumericScale=null,ResultMapid='null',JDBCTypeName='null',Expression='n
Spring Hateoas没有为以下请求映射创建适当的链接: 致电/会员/12345时,您希望返回: 但相反,它返回: 这是为什么?即使我使用@Request estParam,它也完全忽略了过滤器。在这件事上,任何建议都将受到赞赏。
问题内容: 我想要一个带有两个参数的spring数据存储库接口。有没有办法使其具有以下行为? 如果两个参数都有一个值,我希望它正常运行并对两个值都执行“与”运算。 例如,如果第二个参数为null,则它将仅按ParameterOne搜索 有什么建议么? 问题答案: 我不知道这是可能的仓库方法命名,但你可以使用像