从数据库读取数据存入二维数组

下面是我写的,但好像行不通,各位大虾帮忙看下是哪里出问题,要怎么改,帮帮小弟了,我先谢了~ String sql="select * from scene"; rs=stmt.executeQuery(sql); rs.last(); int sceneLength=rs.getRow(); rs.beforeFirst(); int i=0; Scenery[][] sceneries=new Scenery[sceneLength][]; while(rs.next()){ String sql1="select * from scenery where scenery.scene=rs.getInt(1)"; rses[i]=stmt.executeQuery(sql1); int j=0; while(rses[i].next()){ sceneries[i][j]=new Scenery(rs.getString(2),rses[i].getString(3),rses[i].getString(4),rses[i].getString(5),rses[i].getString(6),rses[i].getString(7)); j++; } i++; }

第1个回答  2020-02-09
同时存在两个结果集
public
Scenery[][]
getSceneries()throws
ModelException,
ApplicationException{
Connection
conn=null;
Statement
stmt=null;
ResultSet
rs=null;
try{
String
drname="sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(drname);
String
url="jdbc:odbc:guidesys";
conn=DriverManager.getConnection(url);
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String
sql="select
*
from
scene";
rs=stmt.executeQuery(sql);
rs.last();
Scenery[][]
sceneries=new
Scenery[rs.getRow()][];
String[]
sceneId=new
String[rs.getRow()];
String[]
sceneName=new
String[rs.getRow()];
rs.beforeFirst();
int
i=0;
while(rs.next()){
sceneId[i]=rs.getString(1);
sceneName[i]=rs.getString(2);
i++;
}
rs.close();
stmt.close();
for(int
k=0;k<sceneId.length;k++){
Statement
stmts=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet
rses=stmts.executeQuery("select
*
from
scenery
where
scenery.scene='"+sceneId[k]+"'");
rses.last();
sceneries[k]=new
Scenery[rses.getRow()];
rses.beforeFirst();
int
j=0;
while(rses.next()){
System.out.println(rses.getString(3));
sceneries[k][j]=new
Scenery(sceneName[k],rses.getString(3),rses.getString(4),rses.getString(5),rses.getString(6),rses.getString(7));
j++;
}
rses.close();
stmts.close();
}
conn.close();
return
sceneries;
}catch(Exception
e){
throw
new
ModelException(ModelException.CAUSE_SNACKS_NOT_FIND);
}
}
相似回答