Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    8

    indipendenza dai database

    ho un problema con la connessione ai database.
    il problema è questo:
    dovrei costruire un'applicazione che nn utilizzi un solo database, ma più databases.
    cioè in fase di setup dell' applicazione verrà chiesto all'utente quale database utilizzare(MYSQL ,ACCESS,FIREBIRD....) e quello verrà utilizzato per sempre!
    avevo pensato che creando un file .ini in cui all'interno mettevo i vari dati dei database(i nomi dei driver e le info necessarie) e richiamandolo all'interno della classe al momento opportuno , avrei risolto il problema.

    ma qual è il momento opportuno??
    java può entrare in un file .ini e estrarre la riga che gli interessa (quella che contiene l'url e il jdbc del database che voglio usare)e "importarla "nel codice?

    nn so se mi sono spiegata!
    se mi aiutate, ve ne sarò molto grata

  2. #2
    perchè non impostarlo in runtime, passando la stringa di connessione tramite variabile? (seleziona database)

    in che linguaggio pensi di farlo... java?
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    8
    devo farlo in java.
    e come si fa in run time??
    l'utente sceglie nel programma quale db utilizzare?

    qualcuno mi ha detto che è più difficile....
    nn so spiegami cmq come potrei farlo ...per favore

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    codice:
    public class Program {
      
      private ResourceBundle res = ResourceBundle.getBundle("jdbc");
      
      private String jdbcUrl;
      
      public Program() {
        jdbcUrl = res.getString("uri");
      }
    }
    jdbc.properties
    codice:
    uri=uri_del_database
    i file di properties sono file di testo con delle stringhe che vengono estratte a runtime dal resource bundle

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    8
    per il momento grazie ....
    proverò e ti farò sapere al più presto!!!

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    8
    ok...grazie per tutte le info che mi avete dato.
    ma il problema è che il prof vuole che facciamo la scelta del database in fase di installazione!!!!come avevo detto in una delle mie prime rikieste d'aiuto.
    mi sapete dire come posso fare?
    mettere nel file .ini tutte le "info" necessarie di tutti i db che voglio utilizzare è una cosa valida??se sì come faccio a richiamare
    l'info che mi serve con il codice java?
    se voglio usare mysql piuttosto che access, devo riuscire a ricavare la stringa che riguarda la mia scelta dal file .ini??ma si può fare?

    so che mi risponderete
    .....quindi grazie!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    1

    db manager

    salve a tutti!! anch'io ho lo stesso problema come anny80!

    prima di tutto ho creato il db manager !! non so se e giusto il codice percio lo scrivo qui cosi potete dirmi se e giusto quello che ho fatto?


    package sorgenteDati;

    import java.sql.*;

    /**
    *
    * @author g1dream
    *
    */

    public class DBManager {

    private String nomeDB; // Nome del Database a cui connettersi
    private String nomeUtente; // Nome utente utilizzato per la connessione al Database
    private String pwdUtente; // Password usata per la connessione al Database
    private String errore; // Raccoglie informazioni riguardo l'ultima eccezione sollevata
    private Connection db; // La connessione col Database
    private boolean connesso; // Flag che indica se la connessione ? attiva o meno

    public DBManager(String nomeDB) { this(nomeDB, "", ""); }

    public DBManager(String nomeDB, String nomeUtente, String pwdUtente) {
    this.nomeDB = nomeDB;
    this.nomeUtente = nomeUtente;
    this.pwdUtente = pwdUtente;
    connesso = false;
    errore = "";
    }
    // Apre la connessione con il Database
    public boolean connetti() {
    connesso = false;
    try {

    Statement stmt;

    // Carico il driver JDBC per la connessione con il database MySQL
    Class.forName("com.mysql.jdbc.Driver");

    // Controllo che il nome del Database non sia nulla
    if (!nomeDB.equals("")) {

    // Controllo se il nome utente va usato o meno per la connessione
    if (nomeUtente.equals("")) {

    // Effettuo la connessione con Jdbc-Odbc
    db = DriverManager.getConnection("jdbcdbc:" + nomeDB + "?user=root" + nomeUtente + "&password=spitha" + pwdUtente);

    // La connessione non richiede nome utente e password
    db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB);

    }

    else {
    // La connessione richiede nome utente, controllo se necessita anche della password
    if (pwdUtente.equals("")) {

    // La connessione non usa password
    db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=root" + nomeUtente);
    }
    else {

    // La connessione usa della password
    db = DriverManager.getConnection("jdbc:mysql://localhost/" + nomeDB + "?user=root" + nomeUtente + "&password=spitha" + pwdUtente);
    }
    }

    String url ="jdbc:mysql://localhost:3306/mysql";
    Connection con =DriverManager.getConnection(
    url,"root","spitha");

    //Mostra URL e informazioni per la connessione
    System.out.println("URL: " + url);
    System.out.println("Connection: " + con);

    // La connessione ? avvenuta con successo
    connesso = true;
    } else {
    System.out.println("Manca il nome del database!!");
    System.out.println("Scrivere il nome del database da utilizzare all'interno del file \"Estimo.ini\"");
    System.exit(0);
    }
    } catch (Exception e) { errore = e.getMessage(); }
    return connesso;
    }
    }

    Adesso quello che voglio ,se e possibile, e scrivere sempre sullo stesso codice per la indipendenza dal DBMS!! cioe se posso caricare anche i drivers per la sql Firebird e anche per la Access !! cosi nella fase di installazione del programma ,qunado l'utente sceglie tra le 3 sql da installare possono caricarsi i corrispondenti jdbc drivers !!!

    spero che avete capito che cosa ho detto..e chiedo scusa se non mi sono espresso bene ..pero sono greco !!! vi ringrazio ...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.