Problème isertion BD depuis un fichier.data
Bonjour,
Voila j'ai un problème lors de l'insertion voici le message d'erreur :
Code:
1 2 3 4 5
|
Exception in thread "main" java.lang.NullPointerException
at testbd.LectureFichier.lireFichier(LectureFichier.java:49)
at testbd.LectureFichier.main(LectureFichier.java:81)
Java Result: 1 |
Ce qui veut dire que : une erreur de dépassement mémoire : il y a quelque chose dans mon code qui pointe en dehors de la zone de mémoire allouée, et donc pointe sur null. Mais je ne vois pas où . Car je n'utilise n'y des vecteurs et ni tableau. Après je me suis dis que cela peut venir de ma connexion mais c'est pas possible car toute mes autres fonction (Création de table, requête simple ... ) marche et me renvoi quelque chose et créer bien la table au niveau d'oracle.
Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
package testbd;
import java.sql.SQLException;
/**
* Lit un fichier texte et affiche son contenu sur System.out.
* Les différents éléments de la ligne sont séparés par un ou plusieurs espaces.
*
*/
import java.io.File;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.Statement;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class LectureFichier {
private static Statement stmt;
private static Connection con;
/**
* Lit un fichier texte contenant les données de la table JoltDate
* et affiche son contenu sur System.out.
* Les différents éléments de la ligne sont séparés par un ou plusieurs espaces.
* @param nomfichierCour le nom du fichier texte à lire
*/
public static void lireFichier(String nomfichierCour) {
int i = 0;
if (nomfichierCour != null) {
try {
Scanner scanner = new Scanner(new File(nomfichierCour));
while ((scanner.hasNext())) {
// traitement de la ligne courante.
// on lit le Nom, le jour et le nombre de tasses
String nom = scanner.next();
String jour = scanner.next();
int nbtasse = scanner.nextInt();
stmt.executeUpdate("INSERT INTO JoltData VALUES ('" + nom + "', '" + jour + "', '" + nbtasse + "')");
con.commit();
}
scanner.close();
} catch (SQLException ex) {
try {
con.rollback(); // annule les opérations de la transaction
while (ex != null) {
System.out.println("SQL Exception");
System.out.println(ex.getMessage());
System.out.println("ANSI-92 SQL State : " + ex.getSQLState());
System.out.println("Vendorerrorcode : " + ex.getErrorCode());
ex = ex.getNextException();
}
} catch (SQLException ex1) {
Logger.getLogger(LectureFichier.class.getName()).log(Level.SEVERE, null, ex1);
}
}catch (FileNotFoundException ioe) {
System.out.println("Fichier " + nomfichierCour + " inexistant");
System.exit(0);
}
}
}
/**
* programme de test.
*/
public static void main(String[] args) {
LectureFichier.lireFichier("C:/UsersDocuments/NetBeansProjects/TestBD/src/testbd/test.data");
}
} |
Je vous remercie pour votre aide
Cordialement.