Wenn ich getName von MyServ-Klasse aufrufen, bekomme ich null, aber wenn ich sie lokal von DBClass aufrufen, geben sie Zeichenfolgen zurück. Weiß jemand, was ich falsch mache?Java-Getter-Methoden, die null anstelle der Zeichenfolge zurückgeben
package DB;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class DBClass{
private Statement stmt;
private Connection conn;
private ResultSet result;
public String name, surname;
public DBClass(){
}
public Connection dbConnect(final String db_connect_string,
final String db_userid,
final String db_password){
try{
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
conn =
DriverManager.getConnection(db_connect_string, db_userid,
db_password);
stmt = conn.createStatement();
result = stmt.executeQuery("Select * from .....etc");
if(result.next()){
name = result.getString(1).toString();
surname = result.getString(2).toString();
}
return conn;
} catch(final Exception e){
e.printStackTrace();
return null;
}
}
public String getName(){
return name;
}
public String getSurname(){
return surname;
}
}
package DB;
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MyServ
*/
public class MyServ extends HttpServlet{
private static final long serialVersionUID = 1L;
private final DBClass dbclass;
private final String name, surname;
private final Connection conn;
public MyServ(){
dbclass = new DBClass();
final DBClass db = new DBClass();
conn =
db.dbConnect("jdbc:oracle:thin:@elanweb:1510:xxxxx", "xxxxx",
"xxxxxx");
name = dbclass.getName();
surname = dbclass.getSurname();
}
@Override
protected void doGet(final HttpServletRequest request,
final HttpServletResponse response) throws ServletException,
IOException{
}
@Override
protected void doPost(final HttpServletRequest request,
final HttpServletResponse response) throws ServletException,
IOException{
System.out.println("MyServer -- " + name + " " + surname);
response.sendRedirect("http://localhost:8080/DWP/");
}
}
Weil Sie 'doConnect' auf 'db', aber nicht 'dbclass' im MyServ-Konstruktor aufrufen? – ptomli