Hiberbate将数据插入到MySQL数据库时候的问题

举个简单例子吧,希望大神们 能明白我的问题

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,所以他不会报错。

断点调试一下,看看传到后台的和将要写库的数据是不是空格?