Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    1

    [JAVA] sqlite e insert into

    Salve a tutti,

    sto facendo un semplice programmino per archiviare i film che ho sugli HD esterni, l'idea era di leggere il contenuto dell'HD, prendere i nomi dei file ed inserirli banalmente in un Database. (dalla cartella si prende solo il nome poi gli altri dati genere ecc sarebbero stati inseriti appositamente con una form)
    Il problema me lo da ancora alla base, con le insert into:
    in pratica con:

    a = listOfFiles[i].getName();

    prendo il nome uno alla volta dei file da inserire (restituisce una stringa) però dopo non so come inserire la stringa a nella insert into.
    la parte del mio codice è

    codice:
    stat.executeUpdate("insert into film VALUES ("+(String)a+", 'politics')");
    l'errore che mi da è
    Exception in thread "main" java.sql.SQLException: no such column: prova.txt

    che non riesco proprio a capire io voglio che prova.txt (file letto da una cartella a caso) me lo inserisca come un campo della colonna nome.
    Ho provato vari incastri, senza il cast senza apici però non riesco a risolvere.
    Come faccio a passargli la variabile a? in modo cosi che nel ciclo for mi inserisca una nuova riga per ogni nome letto?

    p.s:
    io la tabella la creo così
    codice:
    stat.executeUpdate("create table if not exists film " + "(nome," + "genere)");
    che non so se è corretto (mi sa un pò semplicistica, senza il tipo del campo nome e genere)

    grazie,
    saluti
    Riccardo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] sqlite e insert into

    Originariamente inviato da tyreal
    codice:
    stat.executeUpdate("insert into film VALUES ("+(String)a+", 'politics')");
    l'errore che mi da è
    Exception in thread "main" java.sql.SQLException: no such column: prova.txt
    Le stringhe le devi "quotare" e dovresti anche preoccuparti dell'escape di caratteri speciali.

    Cioè la stringa complessiva che risulta dalle concatenazioni deve essere:

    insert into film VALUES ('prova.txt', 'politics')

    Per evitare di doverti preoccupare di tutto questo (quotazione/escape), usa PreparedStatement invece di Statement.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.