关于Mybatis字符串长度验证

关于Mybatis字符串长度验证

http://img1.sycdn.imooc.com//climg/5f4717750884e18513190277.jpg

比如evaluation表的content字段,数据库中设置的varchar类型,但是长度最长是255。

如果用户写短评,短评内容的长度超过255,就会导致数据库插入失败,也没有给前台提示说短评内容长度超过255。

我发现前面的课程,包括后面的添加图书信息也是,都没有对前台传入的字符串长度进行校验。

在实际工作中,这个字符串长度需要校验么?

还是说如果插入失败,直接给"插入失败"的提示,而不用给"内容长度过长"的提示?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕小班 2020-08-27 19:41:05

同学你好,这里没有提出长度校验是因为当前项目主要是实现项目功能,并没有考虑这里。这个内容可以作为项目更新中可以优化的一个地方。

当然我们也会将同学的建议反馈给相关工作人员的,感谢同学提出的建议,这是我们前进的动力。

继续加油~ 祝:学习愉快!

好帮手慕小班 2020-08-27 18:54:41

同学你好,楼上同学的说法是正确的,对于字符串长度的验证可以添加验证,比如在前端验证,或者是后端验证。

祝:学习愉快!

  • 提问者 慕丝1539783 #1
    怎么做长度校验我知道。 我是想知道为什么视频里老师从头到尾都没有交代或提醒过要做字符串长度校验,我以为最后会有一个统一的字符串长度校验的工具,可是也没出现。 初学者会误以为不需要做长度校验。
    2020-08-27 19:07:52
py_builder 2020-08-27 10:41:59

实际工作中肯定需要解决啊  

 2种解决办法   

1.加大字段的限制

2. 前端验证  或者 后台验证  二选一 或者 二者都加上(也就多几句代码)  

后台验证逻辑如下:

(1) Mapper对象 (即DAO对象)调用  insert()方法时, 判断传进来的content是否超出范围,超出就抛出异常呗  (code, error_message)

(2)Service对象调用DAO(即Mapper)时,捕抓异常,然后将(code, error_message) 传到前端

(3)前端显示  (最重要的是框架,思路,做什么是最重要的,怎么做那是小问题)

  • 提问者 慕丝1539783 #1
    解决思路我是会的,只是好奇为什么整套课程下来,老师都没有做字符串长度验证,而且这个坑还挺大的。
    2020-08-27 10:49:25
  • py_builder 回复 提问者 慕丝1539783 #2
    这个漏洞不算很大(又不是拿去生产) 而且之前也已经强调过 字符限制的问题了 比如你看看 id 字段 直接用的 bigint 你要是拿去生产,实际工作中使用, 在设计数据库的时候就应该自己想到了
    2020-08-27 10:53:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师