IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Auto incrémentation ID SQLite


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2013
    Messages : 28
    Points : 14
    Points
    14
    Par défaut Auto incrémentation ID SQLite
    Bonjour,

    J'aimerais, qu'à la saisie d'un nouveau livre par l'utilisateur, l'ID (clef primaire de ma table Livre) s'auto-incrémente.

    j'utilise cette méthode :

    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
    16
    17
    18
    19
    20
    21
    22
    public static void addLivre(Livre livre) throws SQLException
        {    
            try
            {
                PreparedStatement preparedStatement = connection
     
                .prepareStatement("INSERT INTO LIVRES VALUES(?,?,?,?,?)");
                preparedStatement.setInt(1, livre.getID());
                preparedStatement.setString(2, livre.getTitre());
                preparedStatement.setInt(3, livre.getID_AUTEUR());
                preparedStatement.setString(4, livre.getDESCRIPTION());
                preparedStatement.setInt(5, livre.getID_GENRE());
     
                preparedStatement.executeUpdate();
     
            }
     
            catch (SQLException e)
            {
                e.printStackTrace();
            }
        }
    Comment puis je réaliser ceci ?

    J'ai vaguement trouvé la méthode autoGeneratedID, mais je ne la comprends pas du tout, me générant plus d'erreurs que de réponses...

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    La technique dépend de la base de données. Quelle base de données utilise-tu?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2013
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Bonsoir,

    Oui désolé j'ai complètement oublié de le dire --> j'utilise sqlite via le plugin "sqlite-jdbc-3.7.15-M1"

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    d'après la doc de sqlite:

    Pour créer un id en autoincrement, il faut déclarer la colonne comm:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
      id INTEGER PRIMARY KEY,

    Pour le insert, tu retire simplement le id de ta requête d'insert.

    Si tu as besoin de récupérer cet id juste après l'insert, tu peux appeler
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select last_insert_rowid();

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Aussi, si le driver support le jdbc 3, tu peux éviter le select pour récupérer l'id:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PreparedStatement pstmt = connection.prepareStatement(
        "INSERT INTO LIVRES (titre, auteur_id, description, genre_id) VALUES(?,?,?,?)"
        new String[] {"LIVRE_ID"});
    pstmt.setString(1, livre.getTitre());
    pstmt.setInt(2, livre.getID_AUTEUR());
    pstmt.setString(3, livre.getDESCRIPTION());
    pstmt.setInt(4, livre.getID_GENRE()); 
    pstmt.executeUpdate();
    ResultSet rs = pstmt.getGeneratedKeys();
    if (rs.next()) {
          System.out.println("clé: " + rs.getString(1));
    }

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2013
    Messages : 28
    Points : 14
    Points
    14
    Par défaut
    Encore merci d'avoir pris le temps pour me répondre et m'expliquer !

    Tout marche bien et cela est très plaisant !

    Au plaisir de te lire, bonne nuit à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb d'auto incrémentation sous interbase !!!
    Par le.clown dans le forum InterBase
    Réponses: 2
    Dernier message: 26/02/2004, 14h11
  2. prbl auto-incrémente
    Par cb dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/11/2003, 11h32
  3. Dernière clé auto incrémenté ?
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 15/11/2003, 10h41
  4. [CODE] auto incrémentation ?
    Par Roi dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 25/09/2003, 15h09
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo