-1

setDate(int,java.util.Date) メソッドに適したメソッドが見つかりません PreparedStatement.setDate(int,java.sql.Date,Calendar) は適用されません

public void update (Pasien dp) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
PreparedStatement statement = null;
try {
    statement =  connection.prepareStatement(update);

    statement.setString(1, dp.getId_pemeriksaan());
    statement.setString(2,dp.getNama());
    statement.setString(3,dp.getAlamat());
    statement.setString(4,dp.getUmur());
    statement.setString(5,dp.getJenis_kelamin());
    statement.setString(6,dp.getGolongan_darah());
    statement.setString(7,dp.getSpesimen());
    statement.setString(8,dp.getPengirim());
    statement.setString(9,dp.getPemeriksaan());
    statement.setDate(10, dp.getTanggal()df.format(getTanggal));
    statement.setString(11, dp.getNo_rekam_medik());
    statement.executeUpdate();

} catch (SQLException ex) {
    System.out.println("error karena" +ex.getMessage());
}finally{
    try {
        statement.close();
    } catch (SQLException ex) {
        System.out.println("error karena" +ex.getMessage());
    }
   }
  }
4

3 に答える 3

2

このコード行は疑わしいです:

statement.setDate(10, dp.getTanggal()df.format(getTanggal));

おそらく、次のようになります。statement.setDate(10, df.parse(dp.getTanggal()));

(dp.getTanggal()メソッドが a の場合String)。


明らかに、PreparedStatement.setDate()メソッドをチェックしていません。

メソッドには次のシグネチャがあります。

void setDate(int parameterIndex, java.sql.Date x) throws SQLException;

ではjava.util.Dateなく、java.sql.Dateオブジェクトです。

使用したい場合Calendar

void setDate(int parameterIndex, java.sql.Date x, Calendar cal) throws SQLException;

呼び出すものです。明らかに、これにはまだjava.sql.Dateオブジェクトが必要です。


を に変換するjava.util.Dateにはjava.sql.Date、次のようにします。

java.util.Date date = df.parse(...);
java.sql.Date = new java.sql.Date(date.getTime());
于 2013-01-02T08:27:13.307 に答える
1

例外は正確なエラーを示しています。

setDate(int,java.util.Date) メソッドに適したメソッドが見つかりません PreparedStatement.setDate(int,java.sql.Date,Calendar) は適用されません]

あなたのsrcで以下の行

dp.getTanggal()df.format(getTanggal)

返品中java.util.Dateです。しかし、PreparedStatement.setDate()メソッドは期待していますjava.sql.Date

于 2013-01-02T08:29:50.987 に答える
0
statement.setDate(10, dp.getTanggal()df.format(getTanggal));

を入れ忘れましたcomma(,)。:)

しかし興味深いのは、DateDateFormat#formatのフォーマットされた表現を返すことです。メソッドStringを介して渡す必要があります。setString

于 2013-01-02T08:26:14.053 に答える