Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    36

    [java] auto incremento Derby e selezione colorata JTable

    Ciao a tutti, ho due problemini che mi stanno facendo impazzire, spero che qualche buonuomo voglia aiutarmi dato che non riesco a trovare la soluzione, dunque:

    Partiamo dal problema che dovrebbe essere sempliciotto, ho creato una piccola applicazione java con database integrato derby, a me serve un campo ID che ad ogni inserimento nel database si incrementi automaticamente, leggendo la documentazione ho capito che si fa in questo modo:

    codice:
    ID INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1)
    oppure:

    codice:
    ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1)
    il fatto è che qualsiasi inserimento io faccia lui in automatico mi setta sempre zero (lasciando stare il fatto che dovrebbe partire da 1) non incrementa mai. Qualcuno sa dirmi cosa sbaglio?

    Secondo problemuccio:
    io ho questo database che mi compare in una tabella come posso fare in modo che selezionando una riga specifica della tabella possa colorarla di un altro colore?

    Qualcuno ha voglia di darmi una mano?
    grazie a tutti
    ciao

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Come fai la query?

    Nel mio database l'auto-incremento lo definisco così:
    codice:
    id_snippet integer generated by default as identity primary key
    Poi la query è così (il DEFAULT è sulla colonna dell'auto-incremento, i ? sono per le altre colonne (causa PreparedStatement)):
    codice:
    String query_insert = "insert into snippets values(DEFAULT, ?, ?, ?, ?, ?, ?)";
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    36
    Ciao, intanto grazie per la risposta, per quanto riguarda la definizione quella tua dovrebbe partire da 0 mentre il mio da 1 sempre con incremento automatico, dichiararla come primary key a me non serve ma non credo che possa essere un problema. Per il resto l'inserimento non dovrebbe essere automatico? perchè mi hai scritto questo:

    codice:
    String query_insert = "insert into snippets values(DEFAULT, ?, ?, ?, ?, ?, ?)";
    ho provato pure a fare l'inserimento anche se non capisco il perchè in questo modo:

    codice:
    insert into LIBRERIA values(DEFAULT, ?, ?, ?, ?);
    mi ritorna questo errore:

    codice:
    Error code 30000, SQL state 07000: At least one parameter to the current statement is uninitialized.
    Line 1, column 1

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da loop4633
    perchè mi hai scritto questo:
    codice:
    String query_insert = "insert into snippets values(DEFAULT, ?, ?, ?, ?, ?, ?)";
    Te l'ho scritto il perché: è un esempio di come ho usato derby in un mio progetto. Nel mio caso il valore auto-incrementante era anche chiave primaria, non necessariamente è chiave primaria anche per te! Era solo un esempio...

    Originariamente inviato da loop4633
    ho provato pure a fare l'inserimento anche se non capisco il perchè in questo modo:

    codice:
    insert into LIBRERIA values(DEFAULT, ?, ?, ?, ?);
    C'è scritto perché ho fatto in quel modo: si tratta di una query data in pasto a un PreparedStatement (classe fondamentale per le operazioni con i database).

    Originariamente inviato da loop4633
    mi ritorna questo errore:

    codice:
    Error code 30000, SQL state 07000: At least one parameter to the current statement is uninitialized.
    Line 1, column 1
    Immagino che tu non abbia settato i parametri del PreparedStatement, dai un'occhiata alla guida che ti ho linkato.



    Comunque non hai ancora mostrato come tu fai la query...

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    36
    La mia query è questa:

    codice:
    create table "APP".LIBRARYDB
    (
    	ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
    	Cod VARCHAR(40) NOT NULL PRIMARY KEY,
    	Aut VARCHAR(40) NOT NULL,
    	Title VARCHAR(40) NOT NULL,
    	Note VARCHAR(30)
    )
    successivamente:

    codice:
    insert into LIBRARYDB values(DEFAULT,?,?,?,?);
    tutti gli altri dati vengono inseriti tramite interfaccia grafica ovviamente...

    Devo controllare allora il prepared statement
    Grazie per l'aiuto... ti aggiorno

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    36
    Allora, ho letto un po la documentazione del prepared statement, in sostanza mi è sembrato di capire che serve per stabilire la connessione... ti farò qualche domanda per te sicuramente stupida, ma devo capire

    In che modo configurare sto foglio dovrebbe aiutarmi nell'autoincremento del mio campo?

    Poi io ho configurato il db con netbeans la connessione avviene tranquillamente, quindi penso che lui abbia generato un "prepared statement" ma dove lo trovo per modificarlo?

    Grazie sempre per la tua disponibilità

    Ps: delle JTable sai indirizzarmi?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    36
    up

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da loop4633
    Poi io ho configurato il db con netbeans la connessione avviene tranquillamente, quindi penso che lui abbia generato un "prepared statement" ma dove lo trovo per modificarlo?
    Mi sa che sei piuttosto confuso... PreparedStatement è una classe (o meglio, un'interfaccia) per effettuare interrogazioni SQL. Non lo trovi da nessuna parte, lo devi creare tu nel codice quando hai bisogno di fare un'interrogazione, partendo da un oggetto Connection (che rappresenta la connessione con il db). Ora, non ho idea di cosa tu stia facendo (anche perché non hai ancora postato neanche una riga di codice Java) ma mi sembra di capire che tu stia usando una qualche automazione di NetBeans. Su questio non posso aiutarti, non uso NetBeans e non uso questo tipo di automazioni visto che fanno più casino che altro, mi spiace...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    36
    Grazie mille per la risposta Alex'87, in effetti sono sempre piu convinto di scriverlo da capo senza netbeans, mi sta creando più problemi che altro

    Ti faró sapere
    Grazie ancora
    Ciao

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.