- 今天遇到一个很简单,但是浪费我很长时间的小问题,mybatis自增主键插入的问题,怎么测试都不正确,检查了几遍,代码没有问题啊,怎么就是一直提示我id没有default value,话不多说,先看我mybatis的代码:
<insert id="insertMessagePush" parameterType="com.workschool.base.po.MessagePushPO" useGeneratedKeys="true" keyProperty="id"> insert into messagepush (FKWorkerId, Title,CreateTime, Remark, Content) values (#{fkworkerid,jdbcType=INTEGER}, #{title,jdbcType=VARCHAR}, #{createtime,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, #{content,jdbcType=LONGVARCHAR}) </insert>
- 再看我的MessagePushPO对象:
package com.workschool.base.po; import java.io.Serializable; public class MessagePushPO implements Serializable { /** * [对象序列化标识] */ private static final long serialVersionUID = 5941705113280080483L; private Integer id; private Integer fkworkerid; private String title; private String createtime; private String remark; private String content; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getFkworkerid() { return fkworkerid; } public void setFkworkerid(Integer fkworkerid) { this.fkworkerid = fkworkerid; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title == null ? null : title.trim(); } public String getCreatetime() { return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime == null ? null : createtime.trim(); } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark == null ? null : remark.trim(); } public String getContent() { return content; } public void setContent(String content) { this.content = content == null ? null : content.trim(); } }
- 理论上完全没问题,但是关键问题不在这里,且看数据库库表:
- 注意这里id一定要勾选上自增递增,否则mybatis再怎么做都不起作用,这样就搞定啦。。