Tom return på String
Jeg har to klasser, den ene er en GUI, den anden databaseconnector.Jeg instantierer databasen fra GUI, og det virker fint.
Jeg vil have opdateret en label med et udtræk af et database kald, hvilket i sig selv også virker, jeg bruger en mouseEvent:
[Applet1]
void cancelButton_mouseClicked(MouseEvent e) {
nameLabel.setText(db.setNavn(loginField.getText()));
System.out.println("Hvad get giver: " + db.getNavn());
}
[DbFunk]
Metoden den kalder i den anden klasse:
public String setNavn(String h){
String hent = h;
String sqlTxt = "SELECT navn FROM person WHERE login = \'" + hent+ "\';";
System.out.println("Søgestrengen: " + sqlTxt + " giver følgende retur:" + "\n");
try{
ResultSet rs = stm.executeQuery(sqlTxt);
while(rs.next())
{
System.out.println("Fra basen: "+rs.getString("navn"));
System.out.println("Fra dbFunk: "+ h);
h = rs.getString("navn");
}
}
catch(SQLException e){
System.out.println("Databasefejl ved hent:"+e);
}
return h;
}
Det der undrer mig er, at jeg, når jeg i databasen forsøger at sende en string tilbage til GUI'en:
public String getNavn(){
return h;
}
får jeg null-værdi tilbage (hvilket også fanges i kaldet fra GUI-klassen.
Er der en god forklaring på dette (det er der vel...) - da jeg gerne vil slippe for at skulle binde mig til både at sende og modtage en string i samme metode. Det undrer mig bare, at den String h, som jeg i øvrigt har erklæret public, er null udenfor metoden?