java 删除代码

publicStringdelete(){site=siteInfoService.findBySiteCode(this.site.getSite_code());si... public String delete(){
site = siteInfoService.findBySiteCode(this.site.getSite_code());
site.setFlag(1);
if(siteInfoService.update(site)){
return SUCCESS;
}
return ERROR;
}
删除时执行的是把数据的flag更新为1,数据库保留数据,但是不显示出来。
这样写,点击删除后,数据还是显示出来了,该怎么解决?
展开
 我来答
dmeigcv
2011-06-19 · TA获得超过1804个赞
知道小有建树答主
回答量:1761
采纳率:0%
帮助的人:288万
展开全部
同意用存储过程。用存储过程的时候,你可以定义Handler,可以根据SQLSTATE来判断,如果发现删除失败,而且是由于外键引起的(有对应的SQLSTATE代码的,不同sql方言可能不同),那么就不能删除。可以返回错误代码

另外,JAVA里面,其实你只要catch到sqlexception,管它是什么错误呢?如果SQLEXCEPTION发生(1是SQL系统挂了,你的例子中2 是由于删除失败(外键)。不管什么情况,都表征失败了。不就可以了?

根据ER图来判断是否有外键,这样可行吗?
这样JAVA代码就要依靠ER图了,实际开发中,这种后期维护挺不容易的。尽量要避免这种代码依赖。
水凌如梦
2011-06-17
知道答主
回答量:32
采纳率:0%
帮助的人:26.5万
展开全部
public String delete(){
site = siteInfoService.findBySiteCode(this.site.getSite_code());
if(site!=null && siteInfoService.update(site)){
site.setFlag(1);
return SUCCESS;
}
return ERROR;
}
追问
还是一样的,数据库的flag都没更新为1 啦
追答
是事务的问题吧,数据库设置的事务级别不是自动提交的吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kjlijk
2011-06-17
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
重新查询数据的时候控制下需要显示的字段,需要显示的字段就留下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友845f74e61
2011-06-17 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1717万
展开全部
你SQL写的有问题吧,flag !=1 这个条件有吗
更多追问追答
追问
有的,执行删除动作后,数据库的flag没更新为1
追答
那有可能是数据库的事务没有提交。

你看一下是不是有conn.setAutoCommit(false);
这样的代码,如果有的话,你执行完delete()处理之后,
执行一下conn.commit();
conn 是java.sql.Connection类的实例。

具体的看一下你的事务处理那块,如果是用别的类库,应该有这一类的方法供你调用。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sdlisilong
2011-06-17 · TA获得超过131个赞
知道答主
回答量:115
采纳率:0%
帮助的人:74.7万
展开全部
你查询时去掉flag为1的了吗
追问
去掉了,直接在数据库里吧flag 改为1,这条数据就查询不出来了。
问题是删除无效啊,点击删除的时候数据库里的flag并没有更新为1 啊。
调试报错:
追答
晕了,原来是出错了,那当然失败了,不过错误信息看不到啊,能不能复制出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式