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

merydol Messages postés 15 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 mai 2010 - 5 mai 2010 à 11:36
merydol Messages postés 15 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 mai 2010 - 5 mai 2010 à 22:54
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mai 2010 à 11:54
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
0
merydol Messages postés 15 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 mai 2010
5 mai 2010 à 12:01
salut,
oui c'est exactement cela pouvoir récupérer champs par champs.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mai 2010 à 12:09
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
0
merydol Messages postés 15 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 mai 2010
5 mai 2010 à 12:17
d'accord merci je vais l'essayer et je posterais mon avancement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merydol Messages postés 15 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 mai 2010
5 mai 2010 à 12:25
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.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mai 2010 à 12:46
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
0
merydol Messages postés 15 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 mai 2010
5 mai 2010 à 12:57
ça marche merci beaucoup.
0
merydol Messages postés 15 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 mai 2010
5 mai 2010 à 19:13
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.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mai 2010 à 19:37
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
0
merydol Messages postés 15 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 mai 2010
5 mai 2010 à 21:36
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
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mai 2010 à 21:39
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
0
merydol Messages postés 15 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 mai 2010
5 mai 2010 à 22:19
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
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
5 mai 2010 à 22:43
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
0
merydol Messages postés 15 Date d'inscription mardi 11 août 2009 Statut Membre Dernière intervention 11 mai 2010
5 mai 2010 à 22:54
c'est exactement ça merciiii
0
Rejoignez-nous