Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    150

    [JAVA] Creare una Tabella leggendo un file.txt

    Ciao a tutti e...buon 2006!!
    Ho un piccolo problema...
    dovrei creare una piccola procedura che:
    1) legga un file di testo e crei una tabella in mysql.

    l' ho visto fare con MSSQL ma...non riesco a ricordare come...ufffff...che fastidiooo!

    qualcuno per cortesia può aiutarmi???
    ...è strano come una salita dall' alto possa sembrare una discesa...

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Dov'è che ti blocchi?

    Prima cosa: dividi et impera.

    - Occupati di leggere il file in questione e di ottenerne i dati (StringTokenizer, Vector, BufferedFileReader sono le cose che ti serviranno).

    - Il file contiene solo i dati da inserire nella tabella, oppure le informazioni per la creazione della tabella sono contenute nel file stesso?

    - Leggi la pillola di LeleFT sulla comunicazione tra Java e Database

    PS: se postavi qualcosa di più specifico e l'eventuale codice a cui eri già arrivato, tanto meglio... non sempre si è disposti a scrivere per intero un programma per "prigrizia" del richiedente...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    150
    ...hai ragione dovevo essere un pochino più preciso...

    praticamente in MSQL eseguivo

    codice:
    ins_stmt =
            conn.prepareStatement(
                "insert into [TDB]"
              + "  SELECT a.*"
              + "    FROM "
              + "   OPENROWSET('MSDASQL', "
              + "   'DRIVER={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=\\\\localhost\\Dati',"
              + "   'select * from db.txt') "
              + "   AS a");
    ma in mysql????
    ...mi manca qualcosa???...mmm..
    ...è strano come una salita dall' alto possa sembrare una discesa...

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non puoi, semplicemente, leggere riga per riga il file ed eseguire una INSERT per ciascuna riga letta? Esempio:
    codice:
    BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream("mioFile.txt") ) );
    String linea = "";
    String query = "";
    String[] campi = null;
    while ((linea = br.readLine()) != null) {
       campi = linea.split(" ");   // Suppongo che ciascuna riga contenga
                                   // i valori dei campi separati da spazio
       query = "INSERT INTO TDB VALUES('" + campi[0];
       for (int i=1; i<campi.length; i++) query += ", " + campi[i];
       query += ");");
       if ( !db.eseguiAggiornamento( query ) ) {
          System.out.println("Impossibile aggiornare. Motivo: " + db.getErrore() );
       }
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    150
    ...certo posso fare anche così...

    vi spiego un pochino meglio...
    la mia piccola procedura dovrebbe
    1) importare il file con i dati.
    2) poter aggiornare - inserire - cancellare un record
    3) salvare il file dati.xxx su un'unità esterna senza lasciare alcuna traccia sul pc.

    ...si accettano consigli...

    db si o db no???
    ...è strano come una salita dall' alto possa sembrare una discesa...

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Se il file è il cassico CSV (valori separati da virgola, ma anche per estensione, qualunque altro separatore) segui la procedura che ti ha illustrato Lele: si legge riga per riga il file e si schiaffa dentro il database mysql.

    Non so niente di MSSQL, ma fondamentalmente mi sembra che la procedura che illustri nella porzione di codice altro non faccia che caricare un qualche componente preposto ad interpretare i file CSV in modo trasparente all'implementatore.
    Ora probabilmente qualcuno là fuori avrà sviluppato qualcosa del genere anche per java + mysql... ma visto che si tratta di poche righe di codice, senza sbattersi troppo a cercare, implementati tu la classe per la lettura del file e la creazione delle query.

    [EDIT]
    PS: DB sì! A maggior ragione se questi dati dovranno essere accessibili su altre piattaforme e da altri computer e possibilimente in contemporanea. L'alternativa, su file, era xml.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    150
    ...ok i dati li sbatto dentro leggendo riga per riga...
    ...ma MYSQL ha un qualcosa che si chiama HISTORY dove tiene traccia di tutte le query eseguite...
    ...il mio problema è che al termine l' utente NON DEVE aver traccia di nulla sul pc...i dati devono essere SOLO ED ESCLUSIVAMENTE su un file.xxx...

    chiedo perdono ma è la prima volta che uso mysql e...ufffff...non si riesce nemmeno a invertire i campi di una tabella??...che fastidiooo!

    GRAZIEEEE!
    ...è strano come una salita dall' alto possa sembrare una discesa...

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Stai confondendo le acque: prima parli di database, poi di file... decidi che devi fare una volta per tutte. Per modificare una tabella (struttura) si usa ALTER TABLE.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    150
    ...mmmm...
    non sto confondendo le acque...magari mi sono espresso male...

    1) importo il file.xxx nel DB
    2) gestisco insert - update - delete
    3) scarico tutto nel file.xxx
    4) cancello tutto dal db

    ...ora se era possibile gestire comodamente i dati senza usare il DB pazienza...a meno che tu mi dia qualche dritta per arrivare al risultato senza usare il DB.

    per quanto riguarda ALTER
    Partiamo dal presupposto che è la prima volta che uso MYSQL, con MSSQL era molto più semplice...

    ma se cambio il nome del campo in contenuto non si sposta!!

    es. voglio spostare il nome prima del cognome...
    risultato --> sotto il campo nome mi ritrovo tutti i cognomi e viceversa...

    spero di essere stato un pochino più chiaro...e grazie!!
    ...è strano come una salita dall' alto possa sembrare una discesa...

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    certamente che si può fare senza database! Potevi dirlo subito che ti serviva fare!

    leggi il file con BufferedReader, splitti con StringTokenizer o direttamente con split di String, sposti gli indici degli array come meglio credi, rischiaffi nel file con BufferedWriter. Fine della fiera.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.