sql >> データベース >  >> RDS >> Oracle

java.sql.SQLException:Io例外:OracleとのJDBC接続中に読み取り呼び出しからマイナス1を取得しました

    まず、接続URLが間違っています。 Post 8080は通常、ApacheTomcatなどのWebサーバーで使用されます。 Oracle自体はデフォルトのポート1521を使用します。も参照してください。このOracleJDBCドキュメント 。

    さらに、に電話するのを忘れました。 ResultSet#next() 。これにより、カーソルが結果セットの次の行に設定されます。結果セットは、カーソル beforeで返されます。 最初の行。 getXXX() ResultSetの呼び出し カーソルを動かさないと失敗します。

    結果セットに複数の行が含まれると予想される場合は、whileを使用する必要があります ループ:

    resultSet = statement.executeQuery();
    while (resultSet.next()) {
        String columnname = resultSet.getString("columnname");
        // ...
    }
    

    または、行が1つしかない場合は、ifを実行することもできます。 ステートメント:

    resultSet = statement.executeQuery();
    if (resultSet.next()) {
        String columnname = resultSet.getString("columnname");
        // ...
    }
    

    基本の使用に関するその他のヒントと例については JDBCの正しい方法(JSP /サーブレットでも)この記事 使える。たとえば、ステートメントと接続を閉じた方法では、リソースリークが発生しやすくなります。また、GET要求でJDBCドライバーをロードすると、不必要にコストがかかります。アプリケーションの起動時またはサーブレットの初期化時に1回だけ実行してください。



    1. 一意キーを参照するDoctrine2マッピング

    2. phpfastcacheの使い方は?

    3. IPv6をデータベースに保存する

    4. Mysqlは同じクエリで行データを使用して別の行を選択しますか?