Salve, sto creando un programma dove (tra le tante cose) si da la possibila all'utente di cambiare url, nome e password relativi alla connessione del database.
In una classe ottengo i valori che vengono salvati in un file.properties e fino a qui tutto ok. Il problema nasce quando sono nella classe relativa alla connesione del batabase. La colpa non è del metodo OutProp (che va a prendere i dati nel file properties) perchè l'ho provato in un'altra classe e funziona perfettamente. Quindi credo ci sia un problema di scrittura codice forse nel metodo public static Connection ConnectDb() perchè essendo statico ci si deve comportare in modo diverso e dato che ho iniziato da poco a studiare il Java penso mi sia sfuggito qualcosa.
ps. Scrivendo Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost/databaseprogetto/root/root"); si connette perfettamente al server.
Vi ringrazio per ogni tipo di suggerimento o soluzione e spero di essermi spiegato bene.
codice:
import java.io.FileInputStream;
import java.sql.*;
import javax.swing.*;
import java.io.IOException;
import java.util.Properties;
public class JavaConnect {
Connection conn = null;
static String url_database;
static String username;
static String password;
public void OutProp (){
Properties prop = new Properties();
try {
prop.load(new FileInputStream("config.properties"));
url_database = prop.getProperty("Url");
username = prop.getProperty("Username");
password = prop.getProperty("Password");
} catch (IOException ex) {
ex.printStackTrace();
}
}
public static Connection ConnectDb(){
try{
Class.forName ("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection (url_database,username,password);
return conn;
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, "Connessione database fallita.");
return null;
}
}
}