Lire un fichier csv pour insertion dans une base de données

Signaler
Messages postés
15
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
11 mai 2010
-
merydol
Messages postés
15
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
11 mai 2010
-
bonjour,
je suis débutante en java et j'ai le problème suivant:
j'arrive a lire les données contenues dans un fichier .CSV mais il s'affiche sous forme de ligne alors que moi je veux avoir enregistrement par enregistrement afin de pouvoir les insérer dans une base de données quelqu'un a t il une idée sur comment faire?
merci d'avance

14 réponses

Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

C'est quoi le problème au juste ? Tu voudrais pouvoir récupérer chaque champ des lignes c'est cà ?
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
15
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
11 mai 2010

salut,
oui c'est exactement cela pouvoir récupérer champs par champs.
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

Utilises la fonction split de la classe String :

String ligneDuFichierCsv = "champ1;champ2;champ3";
String[] champs = ligneDuFichierCsv.split(";");
System.out.println("champs1=" & champs[0] & " champs2=" & champs[1] & " champs3=" & champs[2]);

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
15
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
11 mai 2010

d'accord merci je vais l'essayer et je posterais mon avancement.
Messages postés
15
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
11 mai 2010

salut ,
j'ai essayé ton code mais il me donne une erreur sur la ligne System.out.println("champs1=" & champs[0] & " champs2=" & champs[1] & " champs3=" & champs[2]);
erreur: the operator & is undefined for the argument type java.lang.string .

merci beaucoup pour ton aide.
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

exact, c'est des "+" qu'il faut mettre en non des "&"
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
15
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
11 mai 2010

ça marche merci beaucoup.
Messages postés
15
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
11 mai 2010

SALUT, je suis encore de retour
j'essaye toujours d'inserer les données a partir du fichier csv dans postgres , j'arrive a le faire(depuis pgadmin les données sont là) mais tomcat me sors une erreur que je ne comprend pas .
erreur: org.apache.jasper.JasperException: An exception occurred processing JSP page /saas/ImporterExporter2.jsp at line 79

76: while (true) {
77: // Lit une ligne de test.csv
78: String ligne = tampon.readLine();
79: String[] champs = ligne.split(";") ;
80: if (ligne == null)
81: break;
82:

merci pour tout.
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

Bon ben je me répète pour la millième fois : PAS DE CODE JAVA DANS UNE JSP !

Le code java va dans la servlet, la jsp ne doit contenir QUE des balises html et des taglibs, c'est tout.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
15
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
11 mai 2010

bonjour, voila j'ai mis mon code dans une classe java et j'ai toujours une erreur maintenant je crois a cause de la méthode post :
type Rapport d'exception

message

description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

exception

java.lang.NullPointerException
com.servlet.controle.Lire3.doPost(Lire3.java:85)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

ma page jsp contient un code html pour upload de fichier dans un serveur
merci
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

Une variable qui n'est pas initialisée à la ligne 85 de ta classe Lire3
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
15
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
11 mai 2010

salut dans cette ligne se trouve le fameux split:

String champs[] = ligneDuFichierCsv.split(";") ;

voici un bout de mon code:
String url = "jdbc:postgresql://localhost:5432/saas";
;
Connection connection = null;
Statement statement = null;

FileReader monFichier = null;
BufferedReader tampon = null;
try {

monFichier = new FileReader("D:\\tmp\\employe.csv");
tampon = new BufferedReader(monFichier);

while (true) {

String ligneDuFichierCsv=tampon.readLine();
ligne 85 String champs[] = ligneDuFichierCsv.split(";") ;

if (ligneDuFichierCsv == null)
break;



merci encore une fois
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

Ce doit être le readLine qui te renvoit null alors : regarde ton test juste après...
if (ligneDuFichierCsv == null)
break;

Il faut mettre se test AVANT la ligne 85 !
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
15
Date d'inscription
mardi 11 août 2009
Statut
Membre
Dernière intervention
11 mai 2010

c'est exactement ça merciiii