当我从MyServ类调用getName时,我得到null,但是当我从DBClass本地调用它们时,它们返回字符串。有人知道我做错了什么?Java getter方法返回null而不是字符串
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/");
}
}
因为你在'db'上调用'doConnect',但在MyServ构造函数内调用'dbclass'? – ptomli 2010-11-26 10:22:52