mysql:7867
From: seiji takegata <seiji takegata <takegata@xxxxxxxxxx>>
Date: Tue, 3 Jun 2003 02:39:31 +0900
Subject: [mysql 07867] connector/J3.0 で ResultSet を update しできない?
ヴェルテックの竹形といいます。
MySql+connector/JでResultSetをupdateしようとしています。OSはW2Kです。
mysql-connector-java-2.0.14-bin.jarでは問題ないのですが、
mysql-connector-java-3.0.8-stable-bin.jarに入れ替えると、updateRow()を呼んだ
ところで例外が発生し、次のようなメッセージが表示ます。
refreshRow() called on row that has been deleted or had primary key changed.
該当の行は削除もしていませんし、プライマリキーも変更していません(のつもりです)。
何がいけないのでしょう?
ソースを貼っておきます。
import java.sql.*;
class RsUpdateTest{
public static void main(String[] args){
try {
Class.forName("com.mysql.jdbc.Driver");
String connStr="jdbc:mysql://localhost/jamyto"
+ "?user=Mulder&password=TrustNo1"
+ "&useUnicode=true&characterEncoding=Shift_JIS";
Connection conn =DriverManager.getConnection(connStr);
Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sqlcommand="SELECT * FROM person WHERE id=5";
ResultSet rs= stmt.executeQuery(sqlcommand);
rs.next();
rs.updateString("name","野口五郎");
rs.updateRow();
System.out.println(rs.getInt("id")+":"+rs.getString("name"));
rs.close();
stmt.close();
conn.close();
}
catch (SQLException e) {
System.out.println("データベースのエラーです。");
System.out.println("エラーメッセージ:"+ e.getMessage());
}
catch (Exception e) {
e.printStackTrace ();
}
}
}
--
seiji takegata
takegata@xxxxxxxxxx