0

他のデータベースに挿入する前にデータベースへの入力を検証する関数を持つクラスがあります...次のようになります:1。oracle9iを使用したデータベースPenduduk2.MySQLを使用したデータベースPemohon

これが私が検証するために使用したクラスです

このクラスは、Oracle9iデータベースと呼ばれるdata.KTPにあります。

public class KTP {

public KTP (){

}

private Connection connection;
private String sql;

public KTP(Connection connection) {
    this.connection = connection;
}


public boolean CekNikPadaKtp(String nikPemohon) throws Exception {
    PreparedStatement ps = null;
    try {
        boolean cekNik = true;
        String nikKtp = "";
        sql = "SELECT NIK, TGL_BERLAKU FROM SIAKOFF.VW_KTP_WNI A, DUAL B "
                + "where TGL_BERLAKU < to_char(sysdate, 'DD-MM-YYYY') AND NIK=?";
        ps = connection.prepareStatement(sql);
        ps.setString(1, nikPemohon);
        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            nikKtp = rs.getString("nik");
        }
        rs.close();
        if (nikKtp.equals("")) {
            cekNik = false;
        }
        return cekNik;
    } finally {
        ConnectionUtil.closePreparedStatement(ps);
    }
}

}

これは上からの呼び出しであるもう一方からのものです

public class Pemohon {

private Connection connection;
private String sql;

public Pemohon(Connection connection) {
    this.connection = connection;
}

public String savePemohon(TblPemohon tp) throws Exception {
    PreparedStatement ps = null;
    try {
        if (CekNikPadaKtp(tp.getKtpPemohon())) {
            sql = "insert into pemohon"
                + "(noktp_pemohon,nama_depan,nama_belakang,tempat_lahir_pemohon,tgl_lahir_pemohon,sex,"
                + "agama,status_perkawinan,pekerjaan_pemohon,nama_jalan_pemohon,rt_pemohon,rw_pemohon,kelurahan_pemohon,"
                + "kecamatan_pemohon,kab_ko_pemohon,provinsi_pemohon,pos_pemohon,telp_pemohon,kewarganegaraan_pemohon) "
                + "values("
                + "?,?,?,?,?,"
                + "?,?,?,?,?,"
                + "?,?,?,?,?,"
                + "?,?,?,?,?)";
        ps = connection.prepareStatement(sql);
        ps.setString(1, tp.getKtpPemohon());
        ps.setString(2, tp.getNamaDepanPemohon());
        ps.setString(3, tp.getNamaBelakangPemohon());
        ps.setString(4, tp.getTempatLahirPemohon());
        ps.setString(5, tp.getTanggalLahirPemohon());
        ps.setString(6, tp.getJenisKelamin());
        ps.setString(7, tp.getAgamaPemohon());
        ps.setString(8, tp.getStatusPerkawinan());
        ps.setString(9, tp.getPekerjaanPemohon());
        ps.setString(10, tp.getNamaJalanPemohon());
        ps.setString(11, tp.getRtPemohon());
        ps.setString(12, tp.getRwPemohon());
        ps.setString(13, tp.getKelurahanPemohon());
        ps.setString(14, tp.getKecamatanPemohon());
        ps.setString(15, tp.getKabupatenPemohon());
        ps.setString(17, tp.getProvinsiPemohon());
        ps.setString(18, tp.getKodePosPemohon());
        ps.setString(19, tp.getTelpPemohon());
        ps.setString(20, tp.getKewarganegaraanPemohon());
        ps.execute();
        return "success";
        } else {
            return "Info : nik pemohon belum ada di tabel ktp !";
        }
    } finally {
        ConnectionUtil.closePreparedStatement(ps);
    }
}

}

お願い助けて...

4

1 に答える 1

0

public boolean CekNikPadaKtp(String nikPemohon)クラスのインスタンスメソッドであり、KTPクラス内で呼び出す必要がありますPemohon

KTP次に、最初にクラスのインスタンスを作成してから、次のようにメソッドを呼び出す  必要があります

 try{
 KTP k = new KTP(connection); // edited
 if (k.CekNikPadaKtp(tp.getKtpPemohon())) {
 ... remaining code....

そのクラスのインスタンス/オブジェクトを作成せずに、他のクラスのインスタンス メソッドを呼び出すことはできません。

クラス、オブジェクト、インスタンスメソッド、静的メソッドなど、およびJavaのその他のさまざまな概念について十分に明確ではないと思います。

したがって、最初にこれらをクリアしてから試してみると、はるかに簡単になります。

于 2013-01-29T06:04:08.573 に答える