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

下面是我写的,但好像行不通,各位大虾帮忙看下是哪里出问题,要怎么改,帮帮小弟了,我先谢了~Stringsql="select*fromscene";rs=stmt.exe... 下面是我写的,但好像行不通,各位大虾帮忙看下是哪里出问题,要怎么改,帮帮小弟了,我先谢了~
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++;
}
展开
 我来答
灬紫云轩灬
2008-05-18
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
我是提问的人
问题现在修改如下:

下面的程序在编译时是没有错的,在我J2ME客户端访问这个方法时错了
唯一的可能就是把数据存入二维数组时存储不正确了
开了3个帖子,没人能回答正确,小弟真的很急,各位英雄,各位大哥大姐,如果懂的,请帮个忙认真看下好吗
本来想控制台输出察看的,可后来想想客户端没请求,怎么察看,servlet类作为表示层的怎么察看,种种迷惑都很不解

现在数据库的结构是这样的
景区表:scene
字段 id 数字(整型) name 文本
景点表:scenery
字段 id 自动编号 scene 数字(整型) name 文本 其他字段...
现在我要把景区放在一维,景点放在二维
个位帮忙看下,以下数据存储格式哪里错了,或者全错,那能给个方法吗,希望大家帮个忙,我万分感谢!
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()][];
rs.beforeFirst();
int i=0;
while(rs.next()){
Statement stmts=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rses=stmts.executeQuery("select * from scenery where scenery.scene="+rs.getInt(1)+"");
rses.last();
sceneries[i]=new Scenery[rses.getRow()];
rses.beforeFirst();
int j=0;
while(rses.next()){
System.out.println(rses.getString(3));
sceneries[i][j]=new Scenery(rs.getString(2),rses.getString(3),rses.getString(4),rses.getString(5),rses.getString(6),rses.getString(7));
j++;
}
rses.close();
stmts.close();
i++;
}
rs.close();
stmt.close();
conn.close();
return sceneries;
}catch(Exception e){
throw new ModelException(ModelException.CAUSE_SNACKS_NOT_FIND);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jamyguo
2008-05-18 · 超过13用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:0
展开全部
同时存在两个结果集

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);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式