dao层是否还需要对传入的参数检查

问题描述

众所周知,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就更不应该重复做这件事情。

时间: 2024-12-30 18:30:35

dao层是否还需要对传入的参数检查的相关文章

如果用纯JDBC做DAO层的话?

问题描述 问下,如果用纯JDBC做DAO层的话?类中关联的对象在哪层设置进去好呢?在hibernate里的一对一对关系中,hibernate取的时候自动会将关联的对象同时取出来,然后设置进去,如果用JDBC,那要手动设置,但是,在哪层设置比较好呢,在service层还是控制层,还是dao层呢?望高手解答,谢谢 解决方案 解决方案二:DAO层解决方案三:感觉还是在DAO层比较好service只负责分配数据数据間的关系还是不让其干预好解决方案四:我觉得在dao层比较好,不过还要看具体的吧,看你用的是

Unitils+hibernate+Spring+PostgreSql做dao层测试遇到的错误

这两天看陈雄华的书<Spring3.0企业开发实战>17章做dao层的测试,由于使用postgreSql数据库,所以遇到了不少错误,很多问题百度都没找到答案,所以记录下来给遇到同样错误的童鞋做个参考.下面是我遇到的问题: 1.unitils目前还不支持Hibernate4,所以使用hibernate4的童鞋,要么换hibernate3要么自己用dbUnit做测试. 2.org.unitils.core.UnitilsException: Missing configuration for or

Spring DAO层的设计思想

近几年持久化技术领域异常喧嚣,各种框架雨后春笋般地冒出,Sun也连接不断地颁布几个持久化规范.Spring对多个持久化技术提供了集成的支持,包括Hibernate.iBatis.JDO.JPA.TopLink,此外,还通过Spring JDBC框架对JDBC API进行简化.Spring面向DAO制定了一个通用的异常体系,屏蔽具体持久化技术的异常,使业务层和具体的持久化技术达到解耦.此外,Spring提供了模板类简化各种持久化技术的使用.通用的异常体系及模板类是Spring整合各种五花八门持久化

hibernate-用hql语句删除的时候执行dao层方法报这个错误,哪位大神帮我分析下错误原因,多谢

问题描述 用hql语句删除的时候执行dao层方法报这个错误,哪位大神帮我分析下错误原因,多谢 org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: java.util.ArrayList; nested exception is org.hibernate.MappingException: Unknown entity: java.util.ArrayList at org.springfram

带分页功能的SSH整合,DAO层经典封装

任何一个封装讲究的是,使用,多状态.Action:     任何一个Action继承分页有关参数类PageManage,自然考虑的到分页效果,我们必须定义下几个分页的参数.并根据这个参数进行查值. 然后在继承ServiceManage,ServiceManage类是用来 存放共用的东西:response,重要的是Service的get set 具体讲一下PageManage,    totalPages;//总页数    totalRecord;//总记录数    showRecordNum=D

关于dao层的封装和前端分页的结合(文章有点长,耐心点哦)

任何一个封装讲究的是,实用,多状态. Action:     任何一个Action继承分页有关参数类PageManage,自然考虑的到分页效果,我们必须定义下几个分页的参数.并根据这个参数进行查值. 然后在继承ServiceManage,ServiceManage类是用来 存放共用的东西:response,重要的是Service的get set 具体讲一下PageManage,    totalPages;//总页数    totalRecord;//总记录数    showRecordNum=

session-在java timer定时器中调用dao层会报错

问题描述 在java timer定时器中调用dao层会报错 现在在做一个web项目,使用spring+springMVC+hibernate框架, 问题描述: 项目中有一个扫描的功能,分即时任务.定时任务.周期任务三种,即时任务已经实现了,现在使用java.util.Timer.java.util.TimerTask类做定时任务,重写TimerTask的run方法,在run方法中调用之前已经没有问题的即时任务扫描方法.每次运行定时任务时,会卡在dao层方法的调用上,因为在即时任务的扫描方法中调用

mybatis dao层空指针异常。

问题描述 mybatis dao层空指针异常. 严重: Servlet.service() for servlet [springmvc] in context with path [/fourth] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException at com

用strut2集成SSH框架Action中调用Dao层方法出现空指针异常

问题描述 自己弄了spring的配置文件,和strut的配置文件这个是服务层的代码publicclassSerservicesimplementsISerservices{privateICstServiceDAOServicedao;publicvoidsetDao(ICstServiceDAOServicedao){this.dao=dao;}publicvoidsave(CstServicebean){dao.save(bean);}}这个是Action的代码publicclassSerA