本人在做练习时遇到一个问题

问题在下面
public class A {

DBconn conn = new DBconn();
public Pat_Visit demo1(String PATIENT_ID){
Pat_Visit visit = new Pat_Visit();
String strSQL="select NAME,DEPT_ADMISSION from INFO where ID=?";

ResultSet rs = conn.execQuery(strSQL,new Object[] {PATIENT_ID});
try {
while (rs.next()) {
visit.setNAME(rs.getString(1));
visit.setDEPT_ADMISSION_TO(rs.getString(2));
conn.closeConn();
return visit;
}

} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
conn.closeConn();
return null;
}
conn.closeConn();
return null;
}


public Dept_Dict demo2(){
    如何在这个方法里如何得到demo1方法里的visit.setDEPT_ADMISSON_TO的数据
         
}
}

[code="java"]
public class A {

DBconn conn = new DBconn();
public Pat_Visit demo1(String PATIENT_ID){
Pat_Visit visit = new Pat_Visit();
String strSQL="select NAME,DEPT_ADMISSION from INFO where ID=?";

ResultSet rs = conn.execQuery(strSQL,new Object[] {PATIENT_ID});
try {
while (rs.next()) {
visit.setNAME(rs.getString(1));
visit.setDEPT_ADMISSION_TO(rs.getString(2));
conn.closeConn();
return visit;
}

} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
conn.closeConn();
return null;
}
conn.closeConn();
return null;
}

public Dept_Dict demo2(){
//调用demo1就行了嘛
String PATIENT_ID="要传递的id";
Pat_Visit pv = Pat_Visit demo1(PATIENT_ID);
pv.getDEPT_ADMISSION_TO

}
}

[/code]

public Dept_Dict demo2(){
Pat_Visit visit = demo1("ddddddd");
}

public Dept_Dict demo2(){
Pat_Visit visit = this.demo1("1");
String sStr = visit.getDEPT_ADMISSION_TO();
System.out.println("sStr="+sStr);
}

二楼比较好 也就是DAO中各个方法要独立 要用demo1里的东西 就应该重新执行一次

如果是在同一线程中的话,可以使用ThreadLocal
如果是在web环境中的话, 也有很多其他方法。
[code="java"]
visit.setDEPT_ADMISSION_TO(rs.getString(2));
threadlocal.put("DEPT_ADMISSION_TO",rs.getString(2));

public Dept_Dict demo2(){
threadlocal.get("DEPT_ADMISSION_TO");
}
[/code]

如果是全局的话, 方法就更多了, 可以将这个值同时设置到一个静态变量中。

如果不能修改现有代码。 就需要使用AOP来拦截。