Bonjour,
Je suis en train d'essayer de développer un petit truc en JAVA 1.6 qui accède à une base de données sqlite3.
Je rencontre des difficultés mais ne comprends pas du tout d'où cela peut provenir...
Je cherche de l'aide car le googling sur ce type de problème ne me renvoit rien de pertinent.
J'utilise netbeans 7.1 avec le driver JDBC 1.1.0 .
Le JDK utilisé est le 1.6.
Mon dernier problème en date est le suivant.
Je cherche à insérer une entrée dans ma table categorie :
Categorie
id, int auto-incr
nom , VARCHAR
libelle, VARCHAR.
à l'aide de :
PSInsertCategorie = conn.prepareStatement("INSERT INTO main.categorie (nom,libelle) VALUES (?, ?);");
en faisant appel à
mySM.insertCategorie("nomCAT117", "libCAT117");
L'objet mySM est sensé contenir toute les instructions d'accès à la base de données SQLITE.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public void insertCategorie(String categorie, String libelle) {
try {
PSInsertCategorie.setString(1,categorie);
PSInsertCategorie.setString(2,libelle);
this.insert(PSInsertCategorie);
PSInsertCategorie.clearParameters();
} catch (LsfDBException ex) {
Logger.getLogger(sqliteManager.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(sqliteManager.class.getName()).log(Level.SEVERE, null, ex);
}
} |
this.insert correspond à :
1 2 3 4 5 6 7 8 9 10 11 12
| public void insert(PreparedStatement prep) throws LsfDBException {
try {
stat = conn.createStatement();
conn.setAutoCommit(false);
prep.executeBatch();
conn.setAutoCommit(true);
stat.close();
}
catch ( Exception e) {
throw new LsfDBException(e.getMessage());
}
} |
Ne tenez pas compte svp de mes exceptions personnalisées .... 
Mais ...
j'obtiens :
1 2 3 4 5 6
| GRAVE: null
exception.LsfDBException: SQL logic error or missing database
at db.sqlite.sqliteManager.insert(sqliteManager.java:186)
at db.sqlite.sqliteManager.insertCategorie(sqliteManager.java:343)
at db.dbmanager.save(dbmanager.java:230)
at test.Test.main(Test.java:36) |
sqliteManager.java:186 correspond à
throw new LsfDBException(e.getMessage());
et sqliteManager.java:343 correspond à
this.insert(PSInsertCategorie);
J'ai trifouillé dans tous les sens mais je ne vois pas ce qui cloche ....
Est ce que quelqu'un pourrait m'orienter ?
Merci
[EDIT]
Si je commente les deux autocommit , je n'ai plus de message d'erreur mais rien n'est inséré dans ma base.
A priori le problème viendrait de l'autocommit(true) ....
Partager