java JDBC sql server 判断一条信息是否已存在表中,如果不存在则添加,如果存在则更新重要字段

代码如下:sql=con.prepareStatement("select*fromIntegralwhereID=?");sql.setString(1,ID);rs=... 代码如下:
sql = con.prepareStatement("select * from Integral where ID = ? ");
sql.setString(1, ID);
rs = sql.executeQuery();
rs.next();
//System.out.print(rs.getString("ID"));
if(rs.getString("ID").equals(ID)){
sql = con.prepareStatement("update Integral set grade = grade + ?");
int day1 = Integer.parseInt(day);
sql.setInt(1, day1);
sql.executeUpdate();
}else{
sql = con.prepareStatement("insert into Integral(Iname,ID,sex,grade)" + "values(?,?,?,?)");
sql.setString(1, name);
sql.setString(2, ID);
sql.setString(3, sex);
sql.setString(4, day);
sql.executeUpdate();
}
其中ID是通过getString获得字符串,“ID”是列名,其中如果删除else之后内容,可以做到更新,但是如果加上else则会报错,显示“结果集没有当前行” 请各位大神帮帮忙,谢谢了!
展开
 我来答
love笨蛋老婆
2014-12-20
知道答主
回答量:24
采纳率:0%
帮助的人:13.2万
展开全部
如果不存在, 则rs为空,就没有rs.next()这么一说了,,建议先判断rs是否为空
求采纳
追问
能不能说下怎么该才能实现,我试了很多,就是不出来,还有就是在表中查询确实有这条信息,但是rs.next()返回的始终为false  这是为什么
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式