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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
PSInsertCategorie = conn.prepareStatement("INSERT INTO main.categorie (nom,libelle) VALUES (?, ?);");
en faisant appel à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 mySM.insertCategorie("nomCAT117", "libCAT117");
L'objet mySM est sensé contenir toute les instructions d'accès à la base de données SQLITE.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 à :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
throw new LsfDBException(e.getMessage());
et sqliteManager.java:343 correspond à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ....