Ich übergebe an mein Java-Programm im Konstruktor Variablen, speichere diese global ab (beim System.out.println kennt er die Werte ja auch noch), aber bei der nächsten Verwendung (oder beim Aufruf von Außen) sind sie null!
Kann mir einer erklären, was hier los ist?
Codeschnipsel:
DB-Manager
Code:
public class MyDataBaseManager {
public String user, password, dbdriver, jdbcurl, lastquery,lasterror;
private Statement st;
private ResultSet rs;
private ResultSetMetaData rsmd;
private Connection con;
private int scroll, concur;
/**
* Creates a new instance of MyDataBaseManager
*/
public MyDataBaseManager(String dbdriver, String jdbcurl){
System.out.println("1. Konstruktor: " + dbdriver + jdbcurl);
new MyDataBaseManager("","", dbdriver, jdbcurl);
}
public MyDataBaseManager(String user, String password, String dbdriver, String jdbcurl) {
this.user = user;
this.password = password;
this.dbdriver = dbdriver;
this.jdbcurl = jdbcurl;
this.scroll = ResultSet.TYPE_FORWARD_ONLY;
this.concur = ResultSet.CONCUR_READ_ONLY;
System.out.println(this.dbdriver+this.jdbcurl);
}
...
Aufrufer:
Code:
public class SQLclient extends javax.swing.JFrame {
private MyDataBaseManager mydbm;
private JTextField []fields;
/** Creates new form SQLclient */
public SQLclient() {
mydbm = new MyDataBaseManager("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:test1");
System.out.println(mydbm.dbdriver + " " + mydbm.jdbcurl);
initComponents();
}
...
Ausgabe:
Code:
init:
deps-jar:
compile-single:
run-single:
1. Konstruktor: sun.jdbc.odbc.JdbcOdbcDriverjdbc:odbc:test1
sun.jdbc.odbc.JdbcOdbcDriverjdbc:odbc:test1
null null
Erklärt mir bitte, wofür ich zu blöd bin!