fbcyborg
09-01-2008, 15:26
Salve a tutti,
ho bisogno di un chiarimento in merito allo sviluppo di un'applicazione di Basi di dati in Java che utilizza jdbc e MySQL.
L'applicazione utilizza una classe ConnectionManager che contiene un unico metodo getConnection(), il quale viene utilizzato dalle classi DAO che fanno accesso al DBMS e quindi alla base di dati.
Al metodo getConnection vengono passati i parametri necessari, ovvero l'URL del server, l'username e la password.
Il problema è che fin'ora ho utilizzato delle variabili assegnate nel metodo stesso per testare il tutto.
E tali dati li ho passati come argomento al mio DriverManager.
Per farla breve, questa è la classe che uso:
import java.sql.*;
public class ConnectionManager {
public static Connection getConnection() throws SQLException, ClassNotFoundException{
String MY_DRIVER = "com.mysql.jdbc.Driver";
String MY_URL = "jdbc:mysql://localhost/myDatabase";
String LOGIN = "root";
String PASSWD = "password";
Class.forName(MY_DRIVER);
return DriverManager.getConnection(MY_URL,LOGIN, PASSWD);
}
}
Dal momento che la mia applicazione è multiutente e lavora in rete, e tutta l'architettura software java risiede sui client inclusa la classe che ho appena riportato, ho un problema di gestione dei login.
Non so bene quale sia "lo standard", o meglio la cosa più ragionevole da fare, qualora la mia applicazione richieda un'autenticazione sia al livello di base di dati sia, al livello della stessa applicazione.
Vorrei fare un sistema di login (del quale ho già la GUI pronta), che mi autentichi sia sul server mysql sia in locale.
Ho pensato solo a questo per il momento:
creare gli utenti per il database in MySQL
lasciare la classe ConnectionManager in quel modo
ogni volta che l'utente inserisce username e password si prova a fare un'autenticazione verso il database e se non ci sono errori può entrare a usare il programma, altrimenti esce o comunica un login errato
adesso ogni volta che qualsiasi utente in rete deve fare un'operazione con il DBMS lo fa come root
Il tutto però non mi convince molto, appunto chiedevo se ci fosse uno standard per fare questa cosa.
Grazie
ho bisogno di un chiarimento in merito allo sviluppo di un'applicazione di Basi di dati in Java che utilizza jdbc e MySQL.
L'applicazione utilizza una classe ConnectionManager che contiene un unico metodo getConnection(), il quale viene utilizzato dalle classi DAO che fanno accesso al DBMS e quindi alla base di dati.
Al metodo getConnection vengono passati i parametri necessari, ovvero l'URL del server, l'username e la password.
Il problema è che fin'ora ho utilizzato delle variabili assegnate nel metodo stesso per testare il tutto.
E tali dati li ho passati come argomento al mio DriverManager.
Per farla breve, questa è la classe che uso:
import java.sql.*;
public class ConnectionManager {
public static Connection getConnection() throws SQLException, ClassNotFoundException{
String MY_DRIVER = "com.mysql.jdbc.Driver";
String MY_URL = "jdbc:mysql://localhost/myDatabase";
String LOGIN = "root";
String PASSWD = "password";
Class.forName(MY_DRIVER);
return DriverManager.getConnection(MY_URL,LOGIN, PASSWD);
}
}
Dal momento che la mia applicazione è multiutente e lavora in rete, e tutta l'architettura software java risiede sui client inclusa la classe che ho appena riportato, ho un problema di gestione dei login.
Non so bene quale sia "lo standard", o meglio la cosa più ragionevole da fare, qualora la mia applicazione richieda un'autenticazione sia al livello di base di dati sia, al livello della stessa applicazione.
Vorrei fare un sistema di login (del quale ho già la GUI pronta), che mi autentichi sia sul server mysql sia in locale.
Ho pensato solo a questo per il momento:
creare gli utenti per il database in MySQL
lasciare la classe ConnectionManager in quel modo
ogni volta che l'utente inserisce username e password si prova a fare un'autenticazione verso il database e se non ci sono errori può entrare a usare il programma, altrimenti esce o comunica un login errato
adesso ogni volta che qualsiasi utente in rete deve fare un'operazione con il DBMS lo fa come root
Il tutto però non mi convince molto, appunto chiedevo se ci fosse uno standard per fare questa cosa.
Grazie