- - PR -
PreparedStatementのCloseに関して
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-04-19 19:18
testAクラスでPreparedStatementをインスタンスで宣言し、 使用しているメソッドを他のクラスからLOOP処理で何度も呼び出す場合、 下記の処理はCLOSE処理をしてないのでDBに負担をかけることになりますか? ※DB2を使用 class testA{ private static PreparedStatement PS1 private static HashMap AAA(Connection con, String SA) throws SQLException { HashMap ret = null; if (PS1== null) { sql.append("SELECT A FROM BTABLE WHERE "); sql.append("C = ? "); PS1 = con.prepareStatement(sql.toString()); } PS1.setString(1, SA); ResultSet rs = PS1.executeQuery(); ResultSetMetaData rm = rs.getMetaData(); int Cnt = rm.getColumnCount(); if (rs.next()) { ret = new HashMap(); for (int i = 1; i <= Cnt; i++) { if (rs.getObject(i) != null) { ret.put(rm.getColumnName(i), rs.getObject(i)); } } } rs.close(); return ret; } } class testB{ private String BBB (Connection con){ while(rs.next()) { −−−−−−省略------------- testA.AAA(ssss); } } } |
|
投稿日時: 2006-04-19 20:13
継続して使用することでDBに負担をかけるのは、StatementよりConnectionでしょう。
それ以前に、PreparedStatementオブジェクトを使いまわす意図がまったくわかりません。 こんなことしていると、バグの温床になりますよ。 |
1