sql语句是从4个表查询的结果,我自己建了个类tbfybbx把这些要查的列封装了。加了个构造。查完集合存不进数据,sql语句没问题。或者谁帮我看看怎么弄该con=JDBCUtil.open();
ArrayList<TbFybbcx> feiyong = new ArrayList<TbFybbcx>();
sql="select td.wtdd ,tdt.tdh ,tbx.xh,tg.sfxm from tb_dd_xh tbx,tb_dd td,tb_dd_td tdt,tb_gdxxb tg
where td.ddid=tbx.ddid and tdt.ddid=td.ddid and tbx.ddxcid=tg.ddxcid and tg.fkdwjc= ? and tg.wldwbm=?
ps=con.prepareStatement(sql);
ps.setObject(1, fkdw);
ps.setObject(2, skdw);
rs=ps.executeQuery();
while(rs.next())
{
String wtdd=rs.getString("wtdd");
String tdh=rs.getString("tdh");
String xh=rs.getString("xh");;
String sfxm=rs.getString("sfxm");
TbFybbcx tfb=new TbFybbcx(wtdd,tdh,xh,sfxm);
feiyong.add(tfb);
}
ArrayList<TbFybbcx> feiyong = new ArrayList<TbFybbcx>();
sql="select td.wtdd ,tdt.tdh ,tbx.xh,tg.sfxm from tb_dd_xh tbx,tb_dd td,tb_dd_td tdt,tb_gdxxb tg
where td.ddid=tbx.ddid and tdt.ddid=td.ddid and tbx.ddxcid=tg.ddxcid and tg.fkdwjc= ? and tg.wldwbm=?
ps=con.prepareStatement(sql);
ps.setObject(1, fkdw);
ps.setObject(2, skdw);
rs=ps.executeQuery();
while(rs.next())
{
String wtdd=rs.getString("wtdd");
String tdh=rs.getString("tdh");
String xh=rs.getString("xh");;
String sfxm=rs.getString("sfxm");
TbFybbcx tfb=new TbFybbcx(wtdd,tdh,xh,sfxm);
feiyong.add(tfb);
}
为什么只想到这儿呢,你确定是这个构造的方法的问题么?为什么不能是上面的sql语句的错?为什么不能是rs取值的过程有问题,建议你debug吧,这儿问没多大意义!
String wtdd=rs.getString("wtdd");
String tdh=rs.getString("tdh");
String xh=rs.getString("xh");;
String sfxm=rs.getString("sfxm");
TbFybbcx tfb=new TbFybbcx(wtdd,tdh,xh,sfxm);
feiyong.add(tfb);
}
循环里面的变量,在java虚拟机划分空间,变量产生冲突。改动如下
while(rs.next()){
TbFybbcx tfb = new TbFybbcx(rs.getString("wtdd"),getString("tdh"),rs.getString("xh"),rs.getString("sfxm"));
feiyong.add(tfb);
}