Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从Java中的SQL打印信息_Java_Sql_Jdbc_Resultset - Fatal编程技术网

无法从Java中的SQL打印信息

无法从Java中的SQL打印信息,java,sql,jdbc,resultset,Java,Sql,Jdbc,Resultset,用户必须从显示的表中选择度假胜地ID,然后进行预订。我似乎找不到我的问题,我想打印他们正在预订的度假胜地的名称 String x = jTextFieldID.getText(); Integer Resort = Integer.valueOf(x); int resort = Integer.parseInt(x); String sql = "SELECT RESORT_NAME FROM LouwDataBase.Resorts WHERE ID = "+Reso

用户必须从显示的表中选择度假胜地ID,然后进行预订。我似乎找不到我的问题,我想打印他们正在预订的度假胜地的名称

String x = jTextFieldID.getText();
    Integer Resort = Integer.valueOf(x);
    int resort = Integer.parseInt(x);
    String sql = "SELECT RESORT_NAME FROM LouwDataBase.Resorts WHERE ID = "+Resort;  
        try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
            pstmt.setInt(1, resort);
                try (ResultSet rs = pstmt.executeQuery()) {
                    if (rs.next()) {
                    String resortName = rs.getString("RESORT_NAME");
                    JOptionPane.showMessageDialog(null,
                    "You want to book at " + resortName);
    }
您必须使用rs。下一步:

如果你想得到很多结果,你可以使用whilers.next{…}

注意?为了获得良好的实践效果,不要在变量名称的开头使用大写字母。请使用此名称,而应使用RestorName。您必须使用rs。下一步:

如果你想得到很多结果,你可以使用whilers.next{…}

注意?为了获得良好的实践效果,不要在变量名称的开头使用大写字母RestorName使用此名称,而应使用RestorName

在尝试读取ResultSet结果之前,您需要对其进行测试:

if(rs.next()) {
    String ResortName = rs.getString(1);
    JOptionPane.showMessageDialog(null, "You want to book at "+ResortName);
}
您可以使用getString1获取度假村名称,查看更多详细信息。

在尝试读取ResultSet结果之前,您需要测试ResultSet结果:

if(rs.next()) {
    String ResortName = rs.getString(1);
    JOptionPane.showMessageDialog(null, "You want to book at "+ResortName);
}
您可以使用getString1获取RESORT_名称,查看更多详细信息。

错误是sql也传递给了Statement.executeQuery,而不是PreparedStatement.executeQuery

Commented是一个准备好的语句的替代用法,与通常使用的一样

您还应该关闭语句和结果集,这可以通过上面的try with resources自动完成

哦,几乎监督了,必须叫下一个rs。前面已经提到了其他语句。

错误是sql也被传递到Statement.executeQuery,而不是PreparedStatement.executeQuery

Commented是一个准备好的语句的替代用法,与通常使用的一样

您还应该关闭语句和结果集,这可以通过上面的try with resources自动完成



哦,几乎监督了,必须叫下一个rs。其他人已经提到。

您是否有错误?如果是,是什么?问题可能是您没有正确格式化表引用。格式为database.schema.table。可能尝试使用LouwDatabase.dbo.Resorts或实际架构(如果不同)。2017年5月11日9:36:37 PM it.pat.Booking jbutton1Action执行严重:null java.sql.SQLException:不允许在准备好的语句上使用方法“executeQueryString”。在org.apache.derby.client.am.SQLExceptionFactory.getSQLExceptionUnknown源org.apache.derby.client.am.getSQLExceptionUnknown源org.apache.derby.client.am.ClientPreparedStatement.executeQueryUnknown源错误消息非常清楚:改用pstmt.executeQuery,没有字符串参数。你应该用这个问题搜索错误堆栈。你收到错误了吗?如果是,是什么?问题可能是您没有正确格式化表引用。格式为database.schema.table。可能尝试使用LouwDatabase.dbo.Resorts或实际架构(如果不同)。2017年5月11日9:36:37 PM it.pat.Booking jbutton1Action执行严重:null java.sql.SQLException:不允许在准备好的语句上使用方法“executeQueryString”。在org.apache.derby.client.am.SQLExceptionFactory.getSQLExceptionUnknown源org.apache.derby.client.am.getSQLExceptionUnknown源org.apache.derby.client.am.ClientPreparedStatement.executeQueryUnknown源错误消息非常清楚:改用pstmt.executeQuery,没有字符串参数。你应该用这个问题搜索错误堆栈。它是rs.next而不是rs.next,修复错误:抱歉,我尝试使用rs.next,但得到了相同的错误。无论如何,谢谢你的帮助。@Swiper我的错误请尝试使用usinf rs.next加括号instead@Swiper您使用的是什么DBMS?我在NetBeans中使用的是JavaDB。它是rs.next而不是rs.next,请修复错误:抱歉,我尝试使用rs.next,但出现了相同的错误。无论如何,谢谢你的帮助。@Swiper我的错误请尝试使用usinf rs.next加括号instead@Swiper您正在使用什么DBMS?我正在NetBeans中使用JavaDB。只是尝试了一下,不认为我需要循环,我只想显示用户ID的名称enters@Swiper我在回答中在哪里提到了循环?我不明白。对不起,我的意思是测试的下一行只是为了避免在DB没有匹配结果的情况下得到NullPointerException。@Swiper rs.next,它将光标从数据库移到结果集的下一行,如果有行,则返回true,否则为false,您必须使用rs。下一步,在这里阅读此答案,然后尝试一下,不要认为我需要循环,我只想显示用户ID的度假胜地名称enters@Swiper我在回答中在哪里提到了循环?我不明白。对不起,我的意思是测试的下一行只是为了避免在DB没有匹配结果的情况下得到NullPointerException。@Swiper rs.next,它将光标从数据库移到结果集的下一行,如果有行,则返回true,否则为false,您必须使用rs。下一步,请在此处阅读此答案java.sql.SQLException:pos列
“1”超出范围。此结果集的列数为“0”。我更改了WHERE ID=?到其中ID=+Resort,并获得此错误above@Swiper如果您不共享您的更新,我们无法帮助您,请共享您的代码。请使用其他占位符?和setInt1,。。。或者没有设置。准备好的语句用于占位符java.sql.SQLException:列位置“1”超出范围。此结果集的列数为“0”。我更改了WHERE ID=?到其中ID=+Resort,并获得此错误above@Swiper如果您不共享您的更新,我们无法帮助您,请共享您的代码。请使用其他占位符?和setInt1,。。。或者没有设置。准备好的语句用于占位符,
int resort = Integer.parseInt(x);
//String sql = "SELECT RESORT_NAME FROM LouwDataBase.Resorts WHERE ID = ?";  
String sql = "SELECT RESORT_NAME FROM LouwDataBase.Resorts WHERE ID = " + resort;  
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
    //pstmt.setInt(1, resort);
    try (ResultSet rs = pstmt.executeQuery()) {
        if (rs.next()) {
            String resortName = rs.getString("RESORT_NAME");
            JOptionPane.showMessageDialog(null,
                "You want to book at " + resortName);
        }
    }
} catch (SQLException ex) {
    Logger.getLogger(Booking.class.getName()).log(Level.SEVERE, null, ex);
}