0

私は次のコードで試しています。

接続が確立されています。しかし、これresultSetは空(nullではない)として表示されますが、データベースには同じもののエントリが2つ(それぞれ2つのフィールド)あります。

while条件にはなりません。JDBCは初めてです、助けてください!

私のコードは次のとおりです。

import java.sql.*;

public class JDBCTest123
{

    public static void main(String[] args)
    {
        System.out.println("oracle Connect Example.");
        Connection conn = null;
        String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
        String driver = "oracle.jdbc.driver.OracleDriver";
        String userName = "system";
        String password = "mumpymamai";
        Statement stmt = null;
        String query = "select * from table1";  
        try
        {
            Class.forName(driver);
            conn = DriverManager.getConnection(url, userName, password);
            stmt = conn.createStatement();
            System.out.println("Connected to the database");
            ResultSet rs = stmt.executeQuery(query);
            while (rs.next())
            {
                System.out.println(rs.getString(1));
                System.out.println(rs.getString(2));
            }
            conn.close();
            System.out.println("Disconnected from database");
        } catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

そして、出力は次のとおりです。

oracle Connect Example.
Connected to the database
Disconnected from database
4

1 に答える 1

2

提案はほとんどありません。PreparedStatementsより高速で安全な方を使用することをお勧めします。

PreparedStatement ps = null;
conn = DriverManager.getConnection(url, userName, password);
ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while (rs.next())
{
   // do some work
}

close()アプリケーションがクラッシュする可能性があり、接続が閉じられないため、2 番目の提案は、finally ブロックでメソッドを呼び出します。最後に、常に呼び出される保証をブロックします。


なしで機能しない場合の 3 番目の提案Exception、おそらく空のテーブルがあります。

于 2012-07-01T08:56:44.403 に答える