-1

以下のコードは、クエリの実行時に結果をフェッチし、結果を取得してさらに結果セットに保存する単純な jdbc Java プログラムです。

Statement.execute() メソッドを使用すると、選択、更新など、あらゆる種類のクエリを実行できます。ブール値を返します。戻り値が true の場合、select クエリを実行し、ResultSet オブジェクトを取得して、結果のレコードを読み取ります。false を返す場合は、更新クエリである可能性があり、getUpdateCount() メソッドを呼び出して、更新された合計レコードを取得します。

public static void main(String a[]){

        Connection con = null;
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            con = DriverManager.
                    getConnection("jdbc:oracle:thin:@<hostname>:<port num>:<DB name>"
                        ,"user","password");
            Statement stmt = con.createStatement();
            //The query can be update query or can be select query
            String query = "select * from emp";
            boolean status = stmt.execute(query);
            if(status){
                //query is a select query.
                ResultSet rs = stmt.getResultSet();
                while(rs.next()){
                    System.out.println(rs.getString(1));
                }
                rs.close();
            } else {
                //query can be update or any query apart from select query
                int count = stmt.getUpdateCount();
                System.out.println("Total records updated: "+count);
            }
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally{
            try{
                if(con != null) con.close();
            } catch (Exception ex){}
        }
    }

今私の質問は、このプログラムを次のような方法で最適化する必要があるということです

1)実行時にクエリの実行にかかった時間を出力する必要があります

2)そのような方法で条件を追加する必要があります...クエリに1分以上かかる場合は、その時点で停止する必要があります。つまり、1を超えてはならない時間を追跡するカウンターが必要です。分

達成方法を教えてください

4

1 に答える 1