[MySQL] Après une requête depuis Java, l'entrée n'apparait pas dans la BDD
Bonjour,
J'ai installé MySQL sur mon ordinateur pour me créer une BDD locale que je remplit grace à un logiciel Java. Le programme est très simple mais lorsque je fais un INSERT depuis le programme Java, il y a quelque chose de bizarre, l'entrée n'apparait pas, par contre l'identifiant est incrémenté, je m'explique :
J'ai une table "indicateur" avec deux champs id (autoincrémenté) et valeur. Quand je fais un INSERT dans le Workbench de MySQL pas de soucis, j'ai par exemple l'id de l'entrée à 1. Puis j'execute mon programme Java qui lance un INSERT, rien ne se met et si je refait un INSERT depuis le Workbench l'id de l'entrée est 3. Preuve qu'il a vu passé le dernier INSERT.
Voyez vous où est le problème ? Je met à tout hasard mon programme Java, mais je pense que c'est plus un pb d'interfaçage (j'ai pourtant bien mis la librairie) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
|
public static void main(String[] args) {
(new BDD()).requeteUpdate("INSERT INTO `indicateurs`.`indicateur` ( `id` , `valeur`) VALUES ( NULL, " +
"\"6\" );");
}
.....
public class BDD {
static Connection con;
BDD()
{
getConnexion();
}
public static void getConnexion()
{
//implementation
try {
Class.forName("com.mysql.jdbc.Driver");
} catch(Exception ex) { return; }
//connexion
String url = "jdbc:mysql://localhost:3306/indicateurs"; //jdbc:mysql://tnn-vcopilote:3306/cop_tenon_med
String user = "root";
String password = "root";
try {
con = DriverManager.getConnection( url, user, password ) ;
Fc.console("connexion à la BDD");
} catch (Exception e) {
e.printStackTrace();
}
}
public static void requeteUpdate(String req) {
//connexion BDD
Connection conn = con;
try {
conn.setAutoCommit(false);
Statement st = conn.createStatement();
st.executeUpdate(req);
st.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static ResultSet requeteExecute(String req) {
Connection conn = con;
ResultSet rs = null;
try {
conn.setAutoCommit(false);
Statement st = conn.createStatement();
rs = st.executeQuery(req);
rs.close();
st.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return rs;
}
} |