问题在下面
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来拦截。