mybatis自增主键无效

本文解决了一个关于MyBatis自增主键插入失败的问题,通过检查数据库表结构确认id字段是否设置为自增,从而解决了代码运行时报错的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 今天遇到一个很简单,但是浪费我很长时间的小问题,mybatis自增主键插入的问题,怎么测试都不正确,检查了几遍,代码没有问题啊,怎么就是一直提示我id没有default value,话不多说,先看我mybatis的代码:
  2.  <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>
  3. 再看我的MessagePushPO对象:
  4. 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();
        }
    }


  5. 理论上完全没问题,但是关键问题不在这里,且看数据库库表:

  6. 注意这里id一定要勾选上自增递增,否则mybatis再怎么做都不起作用,这样就搞定啦。。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值