Insérer une valeur auto_increment de la table de test à la table de la table de score à l'aide d'une seule "mise à jour" DButton
MySql tables tests table and scores tables
je besoin de mettre à jour les deux tables avec un seul clic de "Mettre à jour" le bouton. Comment puis-je obtenir la valeur tests.test_id à insérer dans le fichier scores.test_id.
Voici ce que j'ai essayé jusqu'ici, cependant seule la table de test est mise à jour.
String subjectCode = SubjectCombo.getSelectedItem().toString(); //gets value selected from subject code JCombobox
String testType = AssesmentCombo.getSelectedItem().toString();//gets value selected from assesment code JCombobox
ResultSet rst = null;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/resultchecker_db","edunge","[email protected]");
st = con.createStatement();
String query4 = "INSERT INTO tests (subject_id, type, test_id) VALUES (?,?,NULL)"; //query to update tests table
ps = con.prepareStatement(query4);
ps.setString(1, subjectCode);
ps.setString(2, testType);
ps.execute();
} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, e1);
}
try {
if (rst.next()){
JOptionPane.showMessageDialog(null, "Student record updated");
}
} catch (HeadlessException e1) {
JOptionPane.showMessageDialog(null, e1);
} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, e1);
}
try {
con.close();
st.close();
rst.close();
} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, e1);
}
// Cette met à jour avec succès la table de test
J'ai aussi essayé de créer une autre connexion mysql sur la ActionListener qui prendra la valeur de test.test_id et insérez-le à table scores, avec le code ci-dessous.
try {
Connection con2 = DriverManager.getConnection("jdbc:mysql://localhost:3306/resultchecker_db","edunge","[email protected]");
Statement st2 = con2.createStatement();
String query5 = "SELECT test_id FROM tests ORDER BY test_id DESC LIMIT 1;";
rst2 = st2.executeQuery(query5);
} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, e1);
}
try {
while(rst2.next()){
label.setText(rst2.getString(1)); //used a label to see if the auto_increment values is received.
}
} catch (SQLException e1) {
JOptionPane.showMessageDialog(null, e1);
}
Les deux codes de connexion à MySQL DB sont tous dans la "mise à jour" ActionListener.
Le but de ceci est de construire une application simple vérificateur de résultats des élèves, pour différents sujets (avec évaluations et examens continus) et les scores. Je voudrais également recevoir des conseils sur la construction d'une meilleure base de données MySQL
Veuillez noter que votre message contient des informations d'identification. Vous pourriez vouloir les changer parce que les actuels sont publics. – mm759