テーブルを参照して値を見つけ、入力した値と比較したいと考えています。
このコードは、存在するかどうかを確認し、2 つの値を比較します。
public boolean verifer(){
DataBase s = DataBase.getInstance();
int numR1 =getnumR();
String req1 ="SELECT `numR` FROM `reference` WHERE `numR` = '"+numR1+"' ";
try {
Statement m= s.getConn().createStatement();
ResultSet r1 = m.executeQuery(req1);
int numR0 = 0;
while (r1.next()) {
numR0 =r1.getInt("numR");
nbp++;
}
if(numR1==numR0){
System.out.println("numR exists! : " +numR0 );
verif=true;
}
else {
System.out.println("numR is not existing ");
verif=false;
}
rs1.close();
m.close();
} catch (SQLException e1) {
e1.printStackTrace();
System.out.println("error validation numR: "+e1);
verif=false;
}
return verif;
}
それらが等しい場合は、変数 maxn を +1 でインクリメントしてリクエストを挿入します。等しくない場合は、n = 1 の挿入クエリ。
public void remplir_reference(){
DataBase s = DataBase.getInstance();
String req3 ;
int numR = getnumR();
int numA = getnumA();
int numV = getnumV();
String type_instal= setType_instal().toString();
String categorie=comboBox_categorie.getSelectedItem().toString();
Calendar calendar =new GregorianCalendar();
calendar.setTime(new Date());
int annee =calendar.get(Calendar.YEAR);
System.out.println(annee);
if(verif==true ){
int maxn=maXnumR();
int maxnplus = maxn +1 ;
System.out.println("existe");
req3 ="INSERT INTO `reference` values ('"+numR+"','"+maxnplus+"','"+cin+"','"+numA+"','"+numV+"','"+type_instal+"','"+categorie+"','"+annee+"')";
try {
Statement m= s.getConn().createStatement();
m.executeUpdate(req3);
} catch (SQLException e1) {
e1.printStackTrace();
System.out.println("remplir_reference si v=vrai: "+e1);
}
}
if(verif ==false) {
System.out.println("n'existe pas");
req3 ="INSERT INTO `reference` values ('"+numR+"',1,'"+cin+"','"+numA+"','"+numV+"','"+type_instal+"','"+categorie+"','"+annee+"')";
try {
Statement m= s.getConn().createStatement();
m.executeUpdate(req3);
} catch (SQLException e1) {
e1.printStackTrace();
System.out.println("remplir_reference si v=false: "+e1);
}
}
}
それは常に「存在しない」と表示され、表の値はn = 1でした
public int maXnumR(){
DataBase s = DataBase.getInstance();
int numR= getnumR();
String req1 = "SELECT MAX('idrf') FROM `reference` WHERE `numR` = '"+numR+"' ";
try {
Statement m= s.getConn().createStatement();
ResultSet r1 = m.executeQuery(req1);
while (r1.next()) {
maxnumR =r1.getInt("idrf");
nbp++;
}
} catch (SQLException e1) {
e1.printStackTrace();
System.out.println("maXnumR repetetion : "+e1);
}
return maxnumR;
}