java中查询一个成绩 但是查询语句返回值是一个集合 直接将集合转为字符串显示索引越界?
/***计算总成绩*@paramproj_id*@return*@throwsSQLException*/publicStringfindallscore(Stringp...
/**
* 计算总成绩
* @param proj_id
* @return
* @throws SQLException
*/
public String findallscore(String proj_id) throws SQLException{
String sql="select sum(stu_core) from StuInfo_Core where proj_id='"+proj_id+"'";
return query(sql).toString();
}
protected void rs2arr(List<StuInfoCore> objs) throws SQLException {
// TODO 自动生成的方法存根
while(rs.next()){
StuInfoCore stuc=new StuInfoCore();
String stu_name=rs.getString(1);
String stu_core=rs.getString(2);
String pa_id=rs.getString(3);
String proj_id=rs.getString(4);
stuc.setStu_name(stu_name);
stuc.setStu_core(stu_core);
stuc.setPa_id(pa_id);
stuc.setProj_id(proj_id);
objs.add(stuc);
}
} 展开
* 计算总成绩
* @param proj_id
* @return
* @throws SQLException
*/
public String findallscore(String proj_id) throws SQLException{
String sql="select sum(stu_core) from StuInfo_Core where proj_id='"+proj_id+"'";
return query(sql).toString();
}
protected void rs2arr(List<StuInfoCore> objs) throws SQLException {
// TODO 自动生成的方法存根
while(rs.next()){
StuInfoCore stuc=new StuInfoCore();
String stu_name=rs.getString(1);
String stu_core=rs.getString(2);
String pa_id=rs.getString(3);
String proj_id=rs.getString(4);
stuc.setStu_name(stu_name);
stuc.setStu_core(stu_core);
stuc.setPa_id(pa_id);
stuc.setProj_id(proj_id);
objs.add(stuc);
}
} 展开
3个回答
展开全部
你不是用的oracle查询的吧,是什么数据库?这个查询到的返回值我觉得好奇怪啊?一般来说query(sql)的结果使用resultSet来接收的,你可以试试先将查询到的结果用ResultSet接收以后,再遍历变成字符串
追问
sql数据库
追答
不好意思,sql数据库我没有操作过,但是所有的数据库有共性,你先试试把查询的结果用resultSet接收一下,然后遍历resultSet的每一个元素,转成String 字符串。比如
String [] str= new String[10];
ResultSet rs = query(sql);
int i = 0 ;
while(rs.next()){
StuInfoCore stuc=new StuInfoCore();
String stu_name=rs.getString(1);
String stu_core=rs.getString(2);
String pa_id=rs.getString(3);
String proj_id=rs.getString(4);
str[i]=stu_name +","+stu_core+","+proh_id;
i++;
}
String result = str.toString();
展开全部
很明显,你select出来的只有一列sum(stu_core),而你在下边赋值的时候写了1、2、3、4列,当然越界了。
还有,这个方法之间是怎么套用的也没看明白。
还有,这个方法之间是怎么套用的也没看明白。
追问
那应该怎么弄 ? 从数据库中取出来
追答
你采纳的答案解决了么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该用if(rs.next()){
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询