problème avec un bete insert

problème avec un bete insert - Java - Programmation

Marsh Posté le 19-09-2005 à 11:23:50    

j'ai un problème pour faire un insert, ca me fait un nullpointerexception

Code :
  1. private int writeAbonne()
  2.   {
  3.     int id = 0 ;
  4.     // Enregistrement dans la bd
  5.     String ins = "INSERT t_abonne (abe_nom, abe_prenom) " +
  6.         "VALUES('" + jTxfldAbonnéNom.getText() + "', '" +
  7.         jTxfldAbonnéPrénom.getText() + "')" ;
  8.     cnl.executeSQL(ins);
  9.   // Recuperation de l'ID
  10.   String rsql = "SELECT * FROM abonne " +
  11.       "WHERE abe_nom = '" + jTxfldAbonnéNom.getText() + "' AND " +
  12.       "abe_prenom = '" + jTxfldAbonnéPrénom.getText() + "'" ;
  13.   ResultSet rs = cnl.createResultSet(rsql) ;
  14.           try
  15.           {
  16.             rs.next() ;
  17.             id = rs.getInt(1) ;
  18.           }
  19.           catch (SQLException se)
  20.           {
  21.             cnl.showListSqlExceptions(se) ;
  22.           }
  23.      
  24.           return id ;
  25.         }

voici ma méthode que j'appelle lors d'un clique sur un bouton. J'ai droit à ce charmant message

Citation :

java.lang.NullPointerException
 
 at gestionabonnementsdiplome.data.DBConnection.executeSQL(DBConnection.java:84)
 
 at gestionabonnementsdiplome.view.pnlNewAbonné.writeAbonne(pnlNewAbonné.java:189)
 
 at gestionabonnementsdiplome.view.pnlNewAbonné.jButtonAbonnéOk_actionPerformed(pnlNewAbonné.java:176)
 
 at gestionabonnementsdiplome.view.pnlNewAbonné_jButtonAbonnéOk_actionAdapter.actionPerformed(pnlNewAbonné.java:232)

Reply

Marsh Posté le 19-09-2005 à 11:23:50   

Reply

Marsh Posté le 19-09-2005 à 11:41:48    

Bah c'est dans ta méthode executeSQL que ça foire [:spamafote] (comme indiqué en toutes lettres par l'exception, à la ligne 84...).
Sinon tu connais les PreparedStatement ? [:itm]


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 19-09-2005 à 13:23:56    

j'ai fait d'une autre manière
 

Code :
  1. public void insert() throws java.sql.SQLException, java.lang.ClassNotFoundException
  2. {
  3.    
  4.     if (Database.getConcurType() == ResultSet.CONCUR_UPDATABLE)
  5.     {
  6.         /* Le driver supporte la mise ˆ jour direct du ResultSet */
  7.         rs.moveToInsertRow() ;
  8.         rs.updateString(SELECT_abé_nom, abé_nom) ;
  9.  
  10.           rs.updateString(SELECT_abé_prenom, abé_prenom) ;
  11.  
  12.           rs.updateInt(SELECT_abé_noplaque, abé_noplaque);
  13.  
  14.           rs.updateString(SELECT_abé_adresse, abé_adresse);
  15.  
  16.           rs.updateString(SELECT_abé_email, abé_email);
  17.  
  18.           rs.updateString(SELECT_abé_numPhone, abé_numPhone);
  19.         rs.insertRow() ;
  20.     }
  21.     else
  22.     {
  23.    
  24.         int max_id ;
  25.         Statement stmt = Database.getConnection().createStatement() ;
  26.         stmt.execute("SELECT MAX(abé_id) + 1 AS MAX_ID FROM t_abonne" ) ;
  27.         stmt.getResultSet().next() ;
  28.         max_id = stmt.getResultSet().getInt(1) ;
  29.         /* Le driver ne supporte pas la mise ˆ jour direct du ResultSet */
  30.         PreparedStatement ipstmt = Database.getConnection().prepareStatement(
  31.             "INSERT INTO t_abonne (abé_id, abé_nom, abé_prenom, abé_noplaque, abé_adresse, abé_email, abé_numPhone) VALUES (?, ?, ?, ?, ?, ?, ?)" ) ;
  32.         ipstmt.setInt(INSERT_abé_id, max_id) ;
  33.         ipstmt.setString(INSERT_abé_prenom, abé_prenom) ;
  34.         ipstmt.setString(INSERT_bé_nom, abé_nom) ;
  35.        
  36.         ipstmt.setInt(INSERT_abé_noplaque, abé_noplaque) ;
  37.        
  38.         ipstmt.setString(INSERT_abé_adresse, abé_adresse) ;
  39.        
  40.         ipstmt.setString(INSERT_abé_email, abé_email) ;
  41.        
  42.         ipstmt.setString(INSERT_abé_numPhone, abé_numPhone) ;
  43.         ipstmt.execute() ;
  44.         ipstmt.close() ;
  45.         /* Rafraichir le pstmt */
  46.         this.open() ;
  47.         /* On se place sur l'enregistrement nouvellement crée. */
  48.         this.get(max_id) ;
  49.     }
  50.     setChanged() ;
  51.     notifyObservers() ;
  52. }

ca parrait correct ?

Reply

Marsh Posté le 19-09-2005 à 13:25:38    

Il dit qu'il voit pas le rapport


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 19-09-2005 à 13:30:41    

aucun rapport mais j'ai juste changé la facon de faire mes objets

Reply

Marsh Posté le 19-09-2005 à 13:32:05    

Ok, lol.


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed