嵌套数据 java_Java中嵌套的数据库操作

今天碰到了一件较为棘手的Java中连接数据库的实例。

问题的产生式这样的:老师让M·Li师妹写个自动编排学号的小程序,初步思想是:①把本省的少数民族学生平均到各个班;②把外省的学生平均到各个班;③把本省的学生按性别平均分到各个班(分几个班视该专业录取的学生数临时决定)。

我们最开始的想法是这样的:(以下是伪代码)

intn=0;

String m=jTextField.getText();//m为班级数//JDBC连接数据库ResultSet rs=state.executeQuery();//根据某条件查询复核条件的学生信息while(rs.next())

{

String temp=rs.getString("考生号");//得到第一个考生的考生号ResultSet rs1=state.executeQuery();//update,SQL语句中对指定的考生号设置班级号n%m+1(m已转换为int型)rs1.close();++n;

}

rs.close();//try、catch语句

在调试的时候突然发现,无论rs.next()有多少条结果,里面的更新数据库语句只能对第一条select到的数据进行更新,然后这个while就执行完了。经过多次调试和运行,我们终于确定了在while(rs.next())里面是不能直接进行SQL语句操作,否则最外面的rs.next()只能运行一次,while的作用根本就发挥不出来。在没想出办法的情况下,我们都想到了传说中很无敌的goto语句(囧)。在Java中就是:

flag:

……breakflag;

调试之后发现这样也不行,那么说明在while(rs.next())里面再次使用SQL语句会对外层的rs.next()有影响。最后只好考虑将while()里面的涉及数据库操作的代码单独拿出来,写一个void temp (String ksh)的方法,然后在while中直接temp(rs.getString("考生号")),这样就可以解决问题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值