下面是一维的,客户端能正常访问
public Snack[] getSnacks()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 snack";
rs=stmt.executeQuery(sql);
rs.last();
Snack[] snacks=new Snack[rs.getRow()];
rs.beforeFirst();
int i=0;
while(rs.next()){
snacks[i]=new Snack(rs.getString(2),rs.getString(3));
//snacks[i].setName(rs.getString(2));
//snacks[i].setIntroduction(rs.getString(3));
i++;
}
rs.close();
stmt.close();
conn.close();
return snacks;
}catch(Exception e){
throw new ModelException(ModelException.CAUSE_SNACKS_NOT_FIND);
}
}
public Snack[] getSnacks()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 snack";
rs=stmt.executeQuery(sql);
rs.last();
Snack[] snacks=new Snack[rs.getRow()];
rs.beforeFirst();
int i=0;
while(rs.next()){
snacks[i]=new Snack(rs.getString(2),rs.getString(3));
//snacks[i].setName(rs.getString(2));
//snacks[i].setIntroduction(rs.getString(3));
i++;
}
rs.close();
stmt.close();
conn.close();
return snacks;
}catch(Exception e){
throw new ModelException(ModelException.CAUSE_SNACKS_NOT_FIND);
}
}
如果你不提供错误信息,我想没有人有时间为了你搭建一个环境,替你做事情!你就继续等吧!
com.xiaofan.guidesys.client.midp.share.ModelException
at com.xiaofan.guidesys.client.midp.model.HttpHandler.openConnectionInputStream(+62)
at com.xiaofan.guidesys.client.midp.model.HttpHandler.getSceneries(+32)
at com.xiaofan.guidesys.client.midp.model.ModelFacade.getSceneries(+7)
at com.xiaofan.guidesys.client.midp.ui.UIController$EventHandler.run(+237)
at com.xiaofan.guidesys.client.midp.ui.UIController$EventHandler.run(+19)这个题目的错误其实是在于我的程序里有两个结果集,而其实在其中一个结果集在长时间处理时,另一个已经关闭了,导致数据存储错误,说实话是不好发现点,呵呵,下面是正确程序代码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);
}
}
恩,com.xiaofan.guidesys.client.midp.model.HttpHandler.openConnectionInputStream 的第62行的错误可惜,根据你给的异常,我真的看不懂。靠自己永远优先于靠别人。 支持你一个