Partage
  • Partager sur Facebook
  • Partager sur Twitter

Initialisation d'une table dans une base de donnée

Sujet résolu
    18 juin 2019 à 10:58:08

    Bonjour,

    J'ai une base de données (BDD) Derby que j'aimerais alimenter via une interface écrite en java. Pour me faciliter le développement, je souhaiterais réinitialiser cette BDD à chaque démarrage et notamment la table "echantillon". Voici mon code:

    package debut;
    
    import java.sql.Connection;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class InitializeDB {
    	
    	/**
    	 * Efface la table echantillon si elle existe dans la BDD
    	 * Créé un nouvelle table echantillon
    	 */
    	public InitializeDB() {
    		
    		Connection connection = ConnectDB.getInstance();
    		try {
    			Statement statement = connection.createStatement();
    			try {
    				statement.executeUpdate("DROP TABLE echantillon");
    				System.out.println("La table echantillon a été effacée");
    			} catch (SQLException e) {
    				System.out.println("La table echantillon n'existe pas");
    			}
    			statement.executeUpdate("CREATE TABLE echantillon "
    					+ "(id INT NOT NULL GENERATED ALWAYS AS IDENTTY, "
    					+ "name VARCHAR(255), "
    					+ "PRIMARY KEY (id)");
    			System.out.println("La table echantillon vient d'être créée");
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
    }
    

    et voici l'erreur générée:

    La table echantillon n'existe pas
    java.sql.SQLSyntaxErrorException: Erreur de syntaxe : Encountered "" at line 1, column 60.
    	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source)
    	at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedStatement.executeLargeUpdate(Unknown Source)
    	at org.apache.derby.impl.jdbc.EmbedStatement.executeUpdate(Unknown Source)
    	at debut.InitializeDB.<init>(InitializeDB.java:23)
    	at debut.Debut.main(Debut.java:7)
    Caused by: ERROR 42X01: Erreur de syntaxe : Encountered "" at line 1, column 60.
    	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
    	at org.apache.derby.impl.sql.compile.ParserImpl.parseStatementOrSearchCondition(Unknown Source)
    	at org.apache.derby.impl.sql.compile.ParserImpl.parseStatement(Unknown Source)
    	at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
    	at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
    	at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
    	... 5 more
    

    Je ne sais pas si mon erreur proviens de l'utilisation du try catch ou bien de la syntax SQL.

    Quelqu'un pourrait il m'aider?




    • Partager sur Facebook
    • Partager sur Twitter
      18 juin 2019 à 11:06:46

      Hello :)

      La ligne java.sql.SQLSyntaxErrorException: t'indique que c'est une erreur SQL, en plus tu vois que ton Print présent dans le catch fonctionne donc ton try catch n'a pas de problème.

      Tu as oublié une parenthèse dans ta requête à la fin ;)

      • Partager sur Facebook
      • Partager sur Twitter
      Développeur FrontEnd | Site CV / Site PRO
        18 juin 2019 à 13:58:05

        @Pickles: Merci pour ton aide! Ah l'erreur bête! (en plus, j'avais oublié un "I" à "IDENTITY").

        Le code fonctionne maintenant correctement.

        • Partager sur Facebook
        • Partager sur Twitter
          18 juin 2019 à 13:58:42

          @rtur a écrit:

          @Pickles: Merci pour ton aide! Ah l'erreur bête! (en plus, j'avais oublié un "I" à "IDENTITY").

          Le code fonctionne maintenant correctement.


          Niquel ;)
          • Partager sur Facebook
          • Partager sur Twitter
          Développeur FrontEnd | Site CV / Site PRO

          Initialisation d'une table dans une base de donnée

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown