Zdravím, mám problém s deklarací proměnné v metodě. Pomocí metody controlLogin ověřuju shodu hesla v DB se zadaným, na základě shody potom chci změnit údaj v logUser a tady nastává můj problém. Po sběhnutí metody se
obsah logUser nemění. Když vytvořím jinou metodu, nebo deklaruji logUser v konstruktoru, nebo userList vše funguje jak má. Už netuším co zkusit, budu vděčný za každou pomoc.
public class DBConnection {
private Connection con;
private Statement st;
private ResultSet rs;
private String dbUrl = "jdbc:mysql://*************/*****";
private String dbUser = "*****";
private String dbPasswd = "*****";
private boolean controlLogin = false;
private String logUser = null;
protected DBConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(dbUrl, dbUser, dbPasswd);
st = con.createStatement();
}catch (ClassNotFoundException | SQLException ex){
JOptionPane.showMessageDialog(null, ex);
}
}
protected boolean controlLogin(String nameIn, String passwdIn) {
try {
rs = st.executeQuery("SELECT passwd FROM user WHERE nick = " +
"'" + nameIn + "'");
while(rs.next()) {
String data = rs.getString("passwd");
if(data.equals(passwdIn)) {
controlLogin = true;
this.dbUser = nameIn;
break;
}else {
controlLogin = false;
}
}
}catch(SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
return controlLogin;
}
protected DefaultListModel userList() {
DefaultListModel userList = new DefaultListModel();
try {
rs = st.executeQuery("SELECT nick FROM user");
while(rs.next()) {
userList.addElement(rs.getString("nick"));
}
} catch(SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
return userList;
}
protected void vypis () {
System.out.println(logUser);
}
}