问题描述
众所周知,web应用都是从用户提交的表单获取数据,当数据到达action层时,我们会对其进行验证,主要指是否为空,通过后,我们就会把参数继续往dao层传递,那么,我们还有没有必要在dao曾对参数数据再进行一次验证呢问题补充:如果说我们在客户端做了如下几件事1:通过对表单每个输入匡进行长度设定,即与数据库中相应的字段长度一致。2:调用javascript进行了是否能为空 和数据类型的检验那么在action层验证之后是否可以完全除去dao层的验证呢
解决方案
一般来讲,我们的验证是分为表单级的验证和业务逻辑级的验证:而表单级的验证又分为:客户端的表单级验证和服务器端的表单级验证业务逻辑级的验证:一般是指要和数据库打交道进行验证的数据的合法性与否!至于你说的问题,我觉得:1.具体情况具体分析,看你的具体的业务流程以及你的业务定义要求验证到什么级别.2.一般来讲,如果业务要求不是很严格的话,在dao层个人感觉没有必要验证了,因为我们目前所讲的dao层宽泛来讲,就是对数据的持久化操作,其它的验证就不是必须的了!
解决方案二:
我觉得可以进行简单的验证,如果不符合,就直接抛出异常.
解决方案三:
我认为DAO层的一些验证,是少不了的。例如,程序中在表示层,接受到的数据是中文,需要做一写操作。 简单的如where xtype=’U’,字符U对应的ASCII码是85,所以可以用where xtype=char(85)代替;如果字符是中文的,比如where name=’用户’,可以用where name=nchar(29992)+nchar(25143)代替。 看到SQL注入的一点资料。。。
解决方案四:
不需要,DAO应该很单纯,不应该有额外的逻辑负担。而且,你在Service层已经加入了业务需要的 空 逻辑判断,既然这样,DAO就更不应该重复做这件事情。