求助,ssm框架insert语句接收不到pojo类的数据什么问题

这是前端输入的数据
图片说明

前端AJAX传入数据

图片说明

后台Controller层代码
图片说明

service层
图片说明

sql输出语句表示这两层都能接受数据
图片说明
但是插入语句找不到数据

==>  Preparing: insert into staff(id,sname,sex,birthday,sid,depart_id,post_id,entrydate,joinworkdate,workform, ,staffsource,politicalstatus,nation,nativeplace,stel,semail,sheight,bloodtype,maritalstatus, registeredresidence,education,degree,university,major,graduationdate,startdate,enddate,status,peroidopdate) values (null, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,? ,'正常' ,?) 

下面是Dao层代码

@Repository("staffDao")
@Mapper
public interface StaffDao {

    public int addStaff(Staff staff);
}

mybatis-conf.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
     <mappers>
        <mapper resource="com/mybatis/AdminMapper.xml"/>
        <mapper resource="com/mybatis/DepartmentMapper.xml"/>
        <mapper resource="com/mybatis/PostMapper.xml"/>
        <mapper resource="com/mybatis/StaffMapper.xml"/>
    </mappers>
</configuration>

StaffMapper.xml代码如下图片说明

数据库结构
图片说明

Staff类

public class Staff {
    private Integer id;
    private String sname;
    private String sex;
    private Date birthday;
    private String birthday1;
    private String sid;
    private Integer depart_id;
    private Integer post_id;
    private Date entrydate;
    private String entrydate1;
    private Date joinworkdate;
    private String joinworkdate1;
    private String workform;
    private String staffsource;
    private String politicalstatus;
    private String nation;
    private String nativeplace;
    private String stel;
    private String semail;
    private Double sheight;
    private String bloodtype;
    private String maritalstatus;
    private String registeredresidence;
    private String education;
    private String degree;
    private String university;
    private String major;
    private Date graduationdate;
    private String graduationdate1;
    private Date startdate;
    private String startdate1;
    private Date enddate;
    private String enddate1;
    private String status;
    private String dname;
    private String pname;
    //get和set省略
}

感谢各位,解决了,实体类中少了一个字段

这多加了个逗号,如下图所示:
图片说明

你的id啥类型  这个是主键吧   你咋insert into ***(id) values (null)  有没有报错?

dao层方法public int addStaff(@Param("staff")Staff staff); 加@Param("staff")注解,在sql语句中#{staff.sex}这样接收参数

额。。。。你这个,我想知道的是,你的数据存进数据库了么?中间服务器没有报错信息是吧?
如果你的数据存进去了。服务器也没有报错,那么你就应该看看在浏览器里面在请求的时候,在network看看请求为什么ajax请求返回状态不是200
你看一看请求的状态码是什么

你的controller层接收到前台ajax传递的数据了吗?没收到的话应该就不是sql的问题了,是controller或者ajax的问题啊。
$("form").serializeArray();//将页面表单序列化成一个JSON结构的对象。注意不是JSON字符串。