Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
Abbiamo assemblato e provato la Fiido Nomads Pro, evoluzione del modello da trekking già presente nella gamma, che migliora in tutto, soprattutto grazie al motore centrale, fluido e potente. Ottima app, costruzione solida e prezzo ok completano il quadro
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto
Lo chassis in Ceraluminium è il cuore di questo notebook in edizione 2026, un modello pensato per garantire produttività con le tipiche applicazioni di produttività personale e capace di offrire un'autonomia di funzionamento lontano dalla presa di corrente da riferimento. Potenza, facilità di trasporto e costruzione robusta tutto in un notebook compatto.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-07-2008, 01:00   #1
kinghomer
Bannato
 
L'Avatar di kinghomer
 
Iscritto dal: Aug 2002
Città: Salerno
Messaggi: 1144
[JAVA]-SQL-Caricare file-DB diversi con un click,come?

Il problema è il seguente:

Mi interfaccio tramite Java ad un file database 'eltafidb' di SQLite nel quale sono contenute due sole tabelle.

La classe che uso per le connessioni è la seguente:

Codice:

import java.sql.*;

public
class ConnectionManager {

   public static Connection getConnection() throws SQLException,ClassNotFoundException {

   String MY_DRIVER = "org.sqlite.JDBC";
   String MY_URL =  "jdbc:sqlite:eltafidb";

   Class.forName(MY_DRIVER);

   Connection temp = DriverManager.getConnection(MY_URL);
   temp.setAutoCommit(true);
   return temp;
   }

}
Ho bisogno di gestire diversi file-DataBase, e di poterli caricare in modo dinamico in run-time. Una specie di:

bottone CARICA DATABASE;

si apre il JFileChooser;

seleziono il file da caricare;

la JTable si riempie e posso fare inserimenti e quant'altro che interessano SOLO quel db caricato.

In questo modo per la classe connessione basta modificare in modo dinamico soltanto MY_URL, e nella fatti specie sostituire "eltafidb" con una nuova stringa che specifica un nuovo file-database con il quale interfacciarsi per inserimenti e quant'altro.

Come si fa tutto ciò?

Tutto è giò pronto e funzionale per un singolo DB statico. Ed ora vorrei capire come rendere il tutto dinamico.
Se avete una soluzione mi postate uno straccio di codice di esempio per favore?
Vi ringrazio in anticipo
kinghomer è offline   Rispondi citando il messaggio o parte di esso
Old 29-07-2008, 10:56   #2
gaxy
Junior Member
 
L'Avatar di gaxy
 
Iscritto dal: Feb 2006
Messaggi: 21
Scusa, e se tu mettessi nella classe anche un costruttore con qualche argomento, tipo:

Codice PHP:
import java.sql.*;

public class 
ConnectionManager {
 
  private 
String MY_DRIVER, MY_URL;

  public 
ConnectionManager (String _drv, String _url) {
       
MY_DRIVER = _drv;
       
MY_URL = _url;
  }

   public 
Connection getConnection() throws SQLException,ClassNotFoundException {

   Class.
forName(MY_DRIVER);

   
Connection temp = DriverManager.getConnection(MY_URL);
   
temp.setAutoCommit(true);
   return 
temp;
   }

} 
Poi ti devi solo ricordare di prevedere un meccanismo di chiusura di ogni connessone (tipo un metodo closeConnection()).

Per la chiamata, alla pressione del tasto istanzi un oggetto ConnectionManager tipo:

Codice PHP:
ConnectionManager conman = new ConnectionManager("org.sqlite.JDBC", "jdbc:sqlite:eltafidb");

conman.getConnection();
...
conman.closeConnection(); 
Così potresti scegliere il db in base alla selezione utente... ho capito bene quello che ti serve?
__________________
"Computer Science is no more about computers than astronomy is about telescopes" (Edsger Dijkstra)
gaxy è offline   Rispondi citando il messaggio o parte di esso
Old 29-07-2008, 15:17   #3
kinghomer
Bannato
 
L'Avatar di kinghomer
 
Iscritto dal: Aug 2002
Città: Salerno
Messaggi: 1144
si esatto

si esattamente!
L'unica fregatura è che il metodo getConnection l'ho implementato statico, e quindi dovrei rifare in qualche modo tutte le relative chiamate del getConnection() nelle classi DAO.
Come sempre c'è la fregatura...

Grazie per l'aiuto
kinghomer è offline   Rispondi citando il messaggio o parte di esso
Old 29-07-2008, 15:26   #4
gaxy
Junior Member
 
L'Avatar di gaxy
 
Iscritto dal: Feb 2006
Messaggi: 21
Puoi anche lasciar perdere quello che ho scritto prima (mi è venuta un'idea più intelligente ): tieniti il metodo statico e aggiungi i parametri:

Codice PHP:
public static Connection getConnection(String _drv, String _url) throws SQLException,ClassNotFoundException {

   
String MY_DRIVER = _drv;
   
String MY_URL = _url; 

   Class.
forName(MY_DRIVER);

   
Connection temp = DriverManager.getConnection(MY_URL);
   
temp.setAutoCommit(true);
   return 
temp;
   } 
Poi devi fare un altro metodo statico closeConnection e gli passi come parametro la connessione corrente...

Così non devi rifare quasi nulla!
__________________
"Computer Science is no more about computers than astronomy is about telescopes" (Edsger Dijkstra)
gaxy è offline   Rispondi citando il messaggio o parte di esso
Old 29-07-2008, 17:00   #5
kinghomer
Bannato
 
L'Avatar di kinghomer
 
Iscritto dal: Aug 2002
Città: Salerno
Messaggi: 1144
tardi

Troppo tardi :P !!!
Ho già riscritto tutto in forma non statica. Poco pulito, ma funzionale.
Grazie per l'aiuto :*
kinghomer è offline   Rispondi citando il messaggio o parte di esso
Old 30-07-2008, 08:52   #6
gaxy
Junior Member
 
L'Avatar di gaxy
 
Iscritto dal: Feb 2006
Messaggi: 21
Ma prego comunque! Mi spiace che l'altra idea mi è venuta dopo...
__________________
"Computer Science is no more about computers than astronomy is about telescopes" (Edsger Dijkstra)
gaxy è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
MSI PRO MAX: QD-OLED ultrawide per lavorare, creare e giocare MSI PRO MAX: QD-OLED ultrawide per lavorare, cre...
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
Cloni di Word, Excel e PowerPoint gratis...
Windows 11 23H2, a novembre finiscono gl...
LineageOS compie 10 anni e festeggia con...
Recensione Mibro AeroPace: leggero nella...
La Russia sta perdendo la guerra dei dat...
Sconti Amazon aggiornati questa mattina:...
Robot aspirapolvere in offerta: Roborock...
MSI MAG a 99€ su Amazon: monitor gaming ...
Estinzione dell'umanità, ci sono ...
Torvalds ha provato l'AI e il primo risu...
Anthropic: meno dati sottratti a Claude,...
GlobalFoundries torna sui 7 nanometri, m...
VMware HyperArmor: una nuova protezione ...
AMD conferma una 'potenziale vulnerabili...
Arlo Pro 6 a 139€ su Amazon: telecamera ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:46.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v