这是前端输入的数据
前端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字符串。