N层结构的问题

wuxiao_v 2008-08-22 04:18:18
比如说我要验证用户的唯一性,是在业务层(BLL)手工查数据库验证,还是在DAl验证.
如果在DAL层验证,是手工查数据然后做对比.还是不做严正直接插数据库违反了唯一约束而抛出异常,来catche这个异常,来确定数据合法性.
...全文
61 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuxiao_v 的回复:]
谁说不通过数据库了.
莫非要这么弄:比如说有个人注册名叫"张三",我要在Bll层查一下数据库有没有叫张三的,如果有就返回错误.

还是这么弄,由于数据库name有唯一约束,所以我不管有没有叫张三的直接把数据插到数据库里,然后看jdbc返回不返回异常
如果返回异常,就向UI返回错误.


商业级别的软件一般用哪个方法.
[/Quote]

第二种。但是各层都可以捕获异常,然后包装成自己层的异常信息(InnerException为原来的异常),继续抛出。BLL一下去武断地掩盖异常的设计只在一些很少人使用的小软件中看到。
  • 打赏
  • 举报
回复
任何一层有文档要去掩盖这个异常吗? 通常都是抛给最外层的界面层去处理异常,界面下的某层如果捕获异常,它也只是包装一下异常然后继续向外抛出。如果你们的设计文档中有详细的“掩盖异常”的逻辑,那么就是在BLL层去预先判断是否有可能下一步出现异常(而不是先做了等下面的异常在捕获),然后进行处理。
wuxiao_v 2008-08-22
  • 打赏
  • 举报
回复
谁说不通过数据库了.
莫非要这么弄:比如说有个人注册名叫"张三",我要在Bll层查一下数据库有没有叫张三的,如果有就返回错误.

还是这么弄,由于数据库name有唯一约束,所以我不管有没有叫张三的直接把数据插到数据库里,然后看jdbc返回不返回异常
如果返回异常,就向UI返回错误.


商业级别的软件一般用哪个方法.
LQknife 2008-08-22
  • 打赏
  • 举报
回复
不同过数据库怎么验证啊 难道缓存了
ZengHD 2008-08-22
  • 打赏
  • 举报
回复
通过DAl屋读取数据库,在BLL验证

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧