有一个查询方法。返回类型是二维数组,这个方法里有四条sql语句分别是这样取的值if(rs.next()){ trt[0]=new String[9];strt[0][0]=rs.getString(1);System.out.println(strt[0][0]);在控制台可以输出着四条sql语句,但它放回是null然后一条数据,然后又是两天null,为什么会是放回是空值那?不知道看不看的明白
调试欢乐多
没看明白,楼主可以在说明白点,或者把这个方法的代码贴一下
StringBuffer sql=null;
GetYears getyears=new GetYears(jdbc);
String years=getyears.Get_years(xian);
String[][] strt=new String[4][];
//List<List<String>> str = new ArrayList<List<String>>();
//List<String> str1 = new ArrayList<String>();
//List list=new ArrayList();
//String returns=null;
try {
sql=new StringBuffer();
sql.append(" SELECT A.D301_01||'_'||A.D301_02||'_'||A.D301_03||'_'||A.D301_04||'_'||A.D301_05||'_'||A.D301_06||'_'||A.D301_07");
sql.append(" ||'_'||A.D301_08||'_'||A.D301_09||'_'||A.D301_10||'_'||A.D301_11||'_'||A.D301_12");
sql.append(" ||'_'||A.D301_13||'_'||A.D301_14||'_'||A.D301_15||'_'||A.D301_16||'_'||A.D301_17||'_'||A.D301_18");
sql.append(" ||'_'||A.D301_19||'_'||A.D301_20||'_'||A.D301_21||'_'||A.D301_22||'_'||A.D301_23||'_'||A.D301_24||'_'||A.D301_25");
sql.append(" ||'_'||A.FAMILY_STATE||'_'||A.YEARS||'_'||ADDRESS||'_'||A.D401_10_TEMP,");
sql.append(" FN_GET_D401_10_TEMP(A.D301_02, A.YEARS, A.D301_01) D401_10_TEMP ");
sql.append(" FROM D301 A ,D401 B WHERE A.D301_02='"+xian+"' AND A.YEARS='"+years+"' AND A.D301_01='"+family_no+"'");
sql.append(" AND A.D301_01=B.D401_20");
sql.append(" AND A.D301_02 = B.D401_19 ");
SqlRowSet rs=jdbc.queryForRowSet(sql.toString());
if(rs.next())
{
strt[0]=new String[9];
strt[0][0]=rs.getString(1);
System.out.println(strt[0][0]);
}
} catch (Exception e1) {
e1.printStackTrace();
}
try {
sql=new StringBuffer();
sql.append(" SELECT '<' || D401_21 || '>'|| A.D401_01||'_'||A.D401_02||'_'||A.D401_03||'_'||TO_CHAR(A.D401_04,'YYYY-MM-DD')||'_'||A.D401_05||'_'||A.D401_06||'_'||A.D401_07");
sql.append(" ||'_'||A.D401_08||'_'||A.D401_09||'_'||A.D401_10||'_'||A.D401_11||'_'||A.D401_12");
sql.append(" ||'_'||A.D401_13||'_'||A.D401_14||'_'||A.D401_15||'_'||A.D401_16||'_'||A.D401_17||'_'||A.D401_18");
sql.append(" ||'_'||A.D401_19||'_'||A.D401_20||'_'||A.D401_21||'_'||A.D401_22||'_'||A.D401_23||'_'||A.D401_24||'_'||A.D401_25");
sql.append(" ||'_'||A.D401_26||'_'||A.D401_27||'_'||A.D401_28||'_'||A.D401_29||'_'||A.BOOK_STATE||'_'||A.STATE||'_'||A.YEARS");
sql.append(" ||'_'||A.D401_10_TEMP||'_'||A.FAMILY_NO||'_'||A.IDENTITY||'_'||A.D401_10_TEMP2||'_'||A.D401_STATU||'_'||A.D401_INTEGRAL");
sql.append(" FROM D401 A WHERE A.D401_19='"+xian+"' AND A.YEARS='"+years+"' AND A.D401_20='"+family_no+"'");
sql.append(" ORDER BY D401_21");
SqlRowSet rs = jdbc.queryForRowSet(sql.toString());
while(rs.next())
{
strt[0]=new String[3];
strt[0][1]=rs.getString(1);
System.out.println(strt[0][1]);
}
} catch (Exception e1) {
e1.printStackTrace();
}
try
{
sql=new StringBuffer();
sql.append(" SELECT D404_01 || '_' || D404_02 || '_' ||");
sql.append(" D404_03 || '_' || D404_04 || '_' ||");
sql.append(" TO_CHAR(D404_05, 'YYYY-MM-DD') || '_' || D404_06 || '_' ||");
sql.append(" D404_07 || '_' || D404_08 || '_' || D404_09 || '_' || D404_10 || '_' ||");
sql.append(" D404_11 || '_' || D404_12 || '_' || D404_13 || '_' || D404_14 || '_' ||");
sql.append(" D404_15 || '_' || D404_16 || '_' || D404_17 || '_' || D404_18 || '_' ||");
sql.append(" D404_19 || '_' || D404_20 || '_' || AREA_CODE || '_' || YEARS || '_' ||");
sql.append(" D404_21 || '_' || D404_22 D40401");
sql.append(" FROM D404");
sql.append(" WHERE AREA_CODE = '"+xian+"'");
sql.append(" AND YEARS = '"+years+"'");
sql.append(" AND D404_21 = '"+family_no+"'");
sql.append("ORDER BY D404_22");;
System.out.println("sql**********="+sql);
SqlRowSet rs=jdbc.queryForRowSet(sql.toString());
while(rs.next())
{
strt[0]=new String[9];
strt[0][2]=rs.getString(1);
System.out.println(strt[0][2]);
}
}
catch(Exception e)
{
e.printStackTrace();
}
try{
sql=new StringBuffer();
sql.append(" SELECT D601_01 || '_' || D601_02 || '_' || D601_03 || '_' || D601_04 || '_' ||");
sql.append(" D601_05 || '_' || TO_CHAR(D601_06, 'YYYY-MM-DD') || '_' ||");
sql.append(" TO_CHAR(D601_07, 'YYYY-MM-DD') || '_' ||");
sql.append(" TO_CHAR(D601_08, 'YYYY-MM-DD') || '_' || D601_09 || '_' || D601_10 || '_' ||");
sql.append(" D601_11 || '_' || D601_12 || '_' || D601_13 || '_' || D601_14 || '_' ||");
sql.append(" D601_15 || '_' || D601_16 || '_' || D601_17 || '_' || D601_18 || '_' ||");
sql.append(" D601_19 || '_' || AREA_CODE || '_' || YEARS || '_' ||");
sql.append(" TC_APPROPRIATE || '_' || TC_REMAIN");
sql.append(" FROM D601");
sql.append(" WHERE AREA_CODE = '"+xian+"'");
sql.append(" AND YEARS = '"+years+"'");
sql.append(" AND D601_02 = '"+family_no+"'");
SqlRowSet rs=jdbc.queryForRowSet(sql.toString());
while(rs.next())
{
strt[0]=new String[6];
strt[0][3]=rs.getString(1);
System.out.println(strt[0][3]);
}
}catch(Exception e)
{
e.printStackTrace();
}
return strt;
}
这是代码?
然后搂住是不是只想看每次循环的System.out.println(strt[0][3]);啊while(rs.next())
{
strt[0]=new String[6];
strt[0][3]=rs.getString(1);
System.out.println(strt[0][3]);
}你每次查询都是这样,strt[0]在每次循环的时候都被赋予了新值,以前的值就没有了
执行完第一次sql,strt[0][0]中有值,然后执行第二个sql,在第一个循环里,strt[0]被重新定义成一个新的数组,并给这个新数组赋值,这样写没意义啊
如果想在strt[0][0],strt[0][1],strt[0][2],strt[0][3]中保存值,那么就把每次循环里定义strt[0]的语句去掉,在最前面定义一次就可以了