|
|
|
|
Bonjour,
Je suis en train de faire une application Java. J'ai créer une connection Mysql dans une class : ConnectionMySQL, je me connect bien !!
Mon probleme est que dans la fonction getConnection qui retourn la Connection, celle-ci est null ???
Comme si l'affectation se fesai en local mais pas d'impact sur la variable globale ???
Voici le code :
...
private java.sql.Connection con;
...
public void actionPerformed (ActionEvent e) {
Object source = e.getSource();
if(source == valid){
con = connect2MySQL(login.getText(),password.getText());
// ici la connection est non null
}
}
public java.sql.Connection getConnection() {
// MAIS ICI LA CONNECTION EST NULL...... POURQUOI ????
return con;
}
public Connection connect2MySQL(String u, String p) {
String user = u;
String pass = p;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/",user,pass);
this.dispose();
return con;
} catch(Exception e){
String s = e.getMessage();
JOptionPane.showMessageDialog(null, s, "Connection Error", JOptionPane.ERROR_MESSAGE);
return null;
}
}
Aidez-moi s'il vous plait .... c'est hyper urgent .... je suis coincée !!!!!!!!!!!!!!!!
Merci d'avance.
Configuration: Linux Epiphany 2.14
Mais le probleme c ke j'utilise onnect2MySQL dans action performed :
|
Heu, non, pas vraiment... Tu as une boite de dialogue pour rentrer l'utilisateur et le mot de passe, je n'avais pas fait gaffe ==> getConnection() sans paramètres ne saura pas créer la connexion la première fois. Du coup,
public java.sql.Connection getConnection()) {
if (con == null) {
// con à null ==> demander l'user et le password à l'utilisateur
// via un JOptionPane par exemple
// Par la suite, le code de connect2MySQL
}
return con;
}
M'enfin, il y a plein de possibilités :) ++ |
Excuse moi je suis pas super douée ta du le remarqué, et suis un peu tétu !!!
|
J'essaie de redire avec en d'autres mots ce que j'ai dit avant:
|
Con est déclaré tel kel : private java.sql.Connection con = null;
|
=> ca appel la fonction actionPerformed qui appel connect2MySQL ...
|
C'est bon ... j'ai trouvé !!! oufff
|
Mai par contre je c tjs pa commen faire pour tapez une seule fois le mot de pass
|
Public void actionPerformed(ActionEvent e) {
|
Du coup pour faire simple g fait une boite de dialog
public void Connect2BD(){
String login = null, pwd = null;
Object[] message = new Object[4];
message[0] = "Login";
message[1] = new JTextField();
message[2] = "Password"; //Message apparaissant dans le corps du dialog
message[3] = new JPasswordField();
// Options (nom des boutons)
String option[] = {"Connection", "Cancel"};
int result = JOptionPane.showOptionDialog(
null,message,"Connection to MySQL",
JOptionPane.DEFAULT_OPTION,JOptionPane.INFORMATION_MESSAGE,
new ImageIcon("./logo-inra-small.gif"),option,message[1]);
if(result == 0){
pwd = ((JPasswordField)message[3]).getText().toString();
login = (((JTextField)message[1]).getText()).toString();
connect2MySQL(login,pwd);
if(!connexion.equals(null)){}
}
}
Merci à tous ceux qui répondent à nos questions ;) Connaître les autres, c’est sagesse. Se connaître soi-même, c’est sagesse supérieure. - Imposer sa volonté aux autres, c’est force. Se l’imposer à soi-même, c’est force supérieure. |