问题描述
举个简单例子吧,希望大神们 能明白我的问题MySQL中,USER表为 也就是说 name和password都是 not null的 create table USER (ID int auto_increment primary key, NAME varchar(20) not null, password varchar(20) not null) 在前台页面 input.jsp中使用的是 DomainModel的方式向 AddAction中传递参数 <form action="login" method="post"><table><tr><td>用户名:</td><td><input type="text" name="user.name" /></td></tr><tr><td>密码:</td><td><input type="password" name="user.password" /></td></tr><tr><td><input type="submit" value="提交" /></td></tr></table></form> 如果在form中不去录入 user.name或者 user.password的值的话(例如:用户名为asdf,而密码那个不填写),在AddAction中通过 Hibernate 向USER表添加记录时候 不是因该报告 字段为空的提示而无法增加记录的么? 但实际上 为什么我 可以插入该条记录呢 ; 并且在password字段的值没有数据,既不显示值,也不显示Null具体 看一下我的截图吧
解决方案
第一点:我首先想到的可能也是输入了空格。第二点:你又没有用Hibernate,如果用了,这个结果是正常的。 建议你使用js判断文本类容是否为空。
解决方案二:
断点调试一下,看看传到后台的和将要写库的数据是不是空格?
解决方案三:
你插入的password肯定是一个空字符串,而不是一个null,所以他不会报错。
解决方案四:
你输入空格,形成一个空空串,一般除了服务器端验证外,还需要在客户端进行验证
解决方案五:
恩,同意上述说法.
解决方案六:
你在前台肯定是不小心输入了空格,所以数据库中的数据是字符串,而且这个字符串是空格。