Avatar billede touel Nybegynder
07. januar 2009 - 22:50 Der er 16 kommentarer og
1 løsning

Gemme csv fil i Mysql

Jeg vil høre om det er muligt i Java, at gemme en csv(comma seperated values) i mysql ?

nogen som så evt. har et eks ?
Avatar billede arne_v Ekspert
07. januar 2009 - 22:54 #1
Hvis du vil gemme hele filen som en enkelt CLOB, saa opretter du en kolonne af typen
TEXT eller MEDIUMTEXT eller LONGTEXT i MySQL (forskellen er max. laengde paa 64 KB, 16 MB
og 4 GB), og laver en PreparedStatement med en INSERT. Lige ud af landevejen.

Vil du gemme CSV filen i flere raekker og flere kollonner, saa for hver linie splitter
du den op og udfoerer en PreparedStatement med en INSERT. Opsplit vil afhaege lidt
af det helt praecise format.
Avatar billede touel Nybegynder
07. januar 2009 - 22:57 #2
hmm....

mangler uddybning...

dvs. at jeg i java er i stand til at generere en csv fil, og gemmer den på eks. c

drevet. Og så skal jeg indlæse filen i Mysql bagefter...
Avatar billede arne_v Ekspert
07. januar 2009 - 23:22 #3
Jeg kan ikke helt se pointen i:

X---(Java program)--->CSV fil---(Java program)--->MySQL

Hvorfor ikke:

X---(Java program)--->MySQL
Avatar billede touel Nybegynder
07. januar 2009 - 23:30 #4
Den kommer til at være sådan her:

X---(Java program)--->CSV fil--->MySQL


1.Javaprogrammet genererer csv fil.

2.Filen sendes til en anden person.

3.Personen indlæser fil i Mysql.
Avatar billede touel Nybegynder
07. januar 2009 - 23:46 #5
arne

Hvis jeg har følgende:

CSVHelper csv = new CSVHelper(pwd.getBrugerNavn(pwd.temp1),pwd.getPassword(pwd.temp2),getArrayList());

hvor alt indholdet af konstruktøren ønskes skrivs ud til en almindelig txt fil,hvordan bruger jeg FileOutputStream her ?

CSVHelper består af:

public class CSVHelper implements Serializable{
   
      private String brugernavn;
      private String password;
      private ArrayList repeatpwd;
     
      public CSVHelper(String n, String pwd,ArrayList gentpwd) {
            super();
            this.brugernavn = n;
            this.password = pwd;
            this.repeatpwd = gentpwd;
           
        }
     
      public String getName() {
            return brugernavn;
        }
        public void setName(String n) {
            this.brugernavn = n;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String pwd) {
            this.password = pwd;
        }
        public ArrayList  getArrayList() {
            return repeatpwd;
        }
        public void setArrayList(ArrayList  pwd) {
           
            this.repeatpwd = pwd ;
        }

}
Avatar billede arne_v Ekspert
07. januar 2009 - 23:51 #6
Saa du vil simpelthen skrive en CSV fil ?

public void writeCSV(PrintWriter pw, CSVHelper csv) {
    pw.println(csv.getName() + "," + csv.getPassword() + "," + csv.getArrayList());
}

og i main:

PrintWriter pw = new PrintWriter(new FileWriter("foobar.csv"));
for(CSVHelper csv : csvlist) {
  writeCSV(pw, csv);
}
pw.close();
Avatar billede touel Nybegynder
08. januar 2009 - 16:59 #7
superb

nu får jeg en csv fil ud af det... glimrende :0)

Nu hvor jeg så ønsker at manuelt indlæse den i mysql, skal det så gøres vha. en sql

kommando, eller kan java klare det ?
Avatar billede touel Nybegynder
08. januar 2009 - 18:50 #8
Errhmm.. lige til at få grå hår af. Arne jeg har 2 tabeller hvori disse data skal

smides ind. I tabel Person har jeg (personid,brugernavn,password).

I den anden tabel Persongentagpwd (personid,ix,gentagpwd).

ix er en felt,som tæller op til 30 gange, og smider et ord hver gang i gentagpwd

feltet, når ix tæller op.
Avatar billede arne_v Ekspert
08. januar 2009 - 22:24 #9
Hvis du alligevel skal læse den CSV fil ind fra dit Java program, hvorfor så have den
CSV fil ??

mysql command line utility har en kommando til formålet, se:
  http://dev.mysql.com/doc/refman/5.0/en/load-data.html
Avatar billede touel Nybegynder
08. januar 2009 - 22:48 #10
siger tak for hjælpen arne... du må gerne lægge svar
Avatar billede arne_v Ekspert
08. januar 2009 - 22:50 #11
kommer her
Avatar billede touel Nybegynder
08. januar 2009 - 22:55 #12
uhh..arne når man kopierer kode fra eclipse til Word, så ser det herrens ud... kan man gøre noget så det ser pænt ud ?
Avatar billede arne_v Ekspert
08. januar 2009 - 23:05 #13
Hos mig kommer Eclipse farverne fint med over.

Hvis du vil undgå dem så kan du lave Eclipse->Notepad->Word eller bare bruge paste special og vælge
unformatted text.
Avatar billede touel Nybegynder
08. januar 2009 - 23:13 #14
jeg har prøvet eclipse ->Notepad->Word, stadig det samme. Jeg trykker bare på Ctrl+c og så ind i Word ???
Avatar billede arne_v Ekspert
08. januar 2009 - 23:30 #15
Og hvad får du ud af det og hvad vil du have ud af det ?
Avatar billede touel Nybegynder
08. januar 2009 - 23:50 #16
jeg kører Word 2000... har prøvet med paste special og unformatted text... Koden ser meget grimt ud... det slet ikke struktureret....
Avatar billede arne_v Ekspert
09. januar 2009 - 00:17 #17
Jeg tester med 2002.

Forsvinder linieskiftene eller hvad er problemet ?

Det er altid godt med kode at ændre skrifttypen til f.eks. Courier 10 punkt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester