java代码中删除表记录,有外键指向该表。

老大让我看着ER图看看有哪些表指向该表,在查询这些表看看是否有记录存在,如果存在不能删除。我的疑问是如果以后必要的时候架构师又加了一个从表外键指向该表,那删除的时候的判断... 老大让我看着ER图看看有哪些表指向该表,在查询这些表看看是否有记录存在,如果存在不能删除。
我的疑问是如果以后必要的时候架构师又加了一个从表外键指向该表,那删除的时候的判断就有得改了。当然这只是个个例,如果这种情况多次出现呢?那java代码就得跟着ER图变动了。
想老大提了异议,结果被批了回来。
不让用存储过程的。
我想知道根据ER图来判断是否有外键,这样可行吗?
展开
 我来答
flyingFish211
2011-01-26 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
同意用存储过程。用存储过程的时候,你可以定义Handler,可以根据SQLSTATE来判断,如果发现删除失败,而且是由于外键引起的(有对应的SQLSTATE代码的,不同sql方言可能不同),那么就不能删除。可以返回错误代码

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

根据ER图来判断是否有外键,这样可行吗?
这样JAVA代码就要依靠ER图了,实际开发中,这种后期维护挺不容易的。尽量要避免这种代码依赖。
j68205150
2011-01-27 · 超过18用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:43万
展开全部
如果一个项目的数据库一直变来变去的话, 就证明这个项目的需求分析做得很烂, 如果是小项目的话, 建议推到重来; 大项目的话, 就等着烂尾吧..

项目用了hibernate吗? 如果用了,就只需要建立表的映射, 至于表间的关系就委托给hibernate了, 你就不用管了..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伟仁志鑫
2011-01-25 · 超过13用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:32.5万
展开全部
写一个存储过程来删除,java只管调用这个存储过程,该如何删除由你的存储过程决定!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chopin_wang
2011-01-29
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
一般来说,数据库的设计一经确定就不能更改的。如果你用JDBC来实现的话,数据库的结构更改会对你的查询实现产生巨大的影响,所以建议你用Hibernate框架实现你的数据库查询操作。这样,当数据库结构变化时,你只需更改相应的实体类和映射文件,而程序代码几乎不用做任何更改。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式