首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PreparedStatement SQLException

PreparedStatement SQLException
EN

Stack Overflow用户
提问于 2018-05-30 07:55:31
回答 3查看 326关注 0票数 0

我在问这个之前就已经考虑过了,但我不知道我是不是做错了什么。

我试着做这样的事情:

代码语言:javascript
复制
String query = "select nombre from DatosPersonas where nombre = '?'";

System.out.println("Introduce nomber a buscar");
String nom = teclado.next();
PreparedStatement pstmt = (PreparedStatement)cn.prepareStatement(query);
pstmt.setString(1, nom);
ResultSet rs1 = pstmt.executeQuery(query);
while (rs1.next()) {
    String nombre = rs1.getString("nombre");            
    System.out.println(nombre);
}

但得到了一个

SQLException:超出范围的参数索引(1 >参数数,即0)。

顺便说一句,我是新来的,我编程时间不长,这是我第一次尝试使用PreparedStatement。谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-30 08:11:28

使用f1sh answer更正查询后,将遇到第二个问题。

你执行错误的方法。目前,您没有使用您已经定义的PreparedStatement实例,而是像执行Statement一样执行String查询。

您需要执行PrepatedStatement.executeQuery(),而不是Statement.executeQuery(String)

所以使用ResultSet rs1 = pstmt.executeQuery();

票数 2
EN

Stack Overflow用户

发布于 2018-05-30 07:57:06

您需要使用?而不是'?'

代码语言:javascript
复制
String query = "select nombre from DatosPersonas where nombre = ?";

这样,?就会被视为一个占位符,可以用pstmt.setString(1, nom);填充,否则它就是查询中的一个静态字符串。

另外,您使用了错误的方法,as AxelH points out in his answer

票数 2
EN

Stack Overflow用户

发布于 2018-05-30 08:10:38

尝试使用以下代码

代码语言:javascript
复制
String query = "select nombre from DatosPersonas where nombre = ?";
PreparedStatement pstmt = connection.prepareStatement(query);
if(!isInteger()){
    pstmt.setString(1, nom);
    ResultSet testExecutions = pstmt.executeQuery();
    while (pstmt.next()) {
        String nombre = pstmt.getString(1);            
    }
}

方法是否检查字符串。

代码语言:javascript
复制
public static boolean isInteger(String input )
{
    try
    {
         Integer.parseInt( input );
         return true;
    }
    catch( Exception )
    {
         return false;
    }
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50599239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档