Mybatis mysql錯誤:Column count doesn't match value count at row 1

當使用mybatis寫好了sql運行時,報錯部分內容如下

Error updating database.  Cause: java.sql.SQLException: Column count doesn't match value count at row 1\r\n### The error may involve com.network.dailyplanner.dao.EventDao.addEvent-Inline\r\n### The error occurred while setting parameters\r\n### SQL: insert into biz_event         (title, content, start_time, end_time, remind_time, group_id, remark, show_status, event_status, gmt_create)         values         (           ?,           ?           ?,           ?,           ?,           ?,           ?,           ?,           ?,           now()         )\r\n### Cause: java.sql.SQLException: Column count doesn't match value count at row 1\n; bad SQL grammar []; nested exception is java.sql.SQLException: Column count doesn't match value count at row 1

意思是存儲的數據與數據庫裏的數據個數不一致

經過查看發現是在mybatis的sql映射文件裏在添加到數據庫中的兩個字段之間沒有添加逗號

    <insert id="addEvent" parameterType="com.network.dailyplanner.bean.BizEventBean" useGeneratedKeys="true" keyProperty="id">
        insert into biz_event
        (title, content, start_time, end_time, remind_time, group_id, remark, show_status, event_status, gmt_create)
        values
        (
          #{title, jdbcType=VARCHAR},
          #{content, jdbcType=VARCHAR}
          #{startTime, jdbcType=TIMESTAMP},
          #{endTime, jdbcType=TIMESTAMP},
          #{remindTime, jdbcType=TIMESTAMP},
          #{groupId, jdbcType=BIGINT},
          #{remark, jdbcType=VARCHAR},
          #{showStatus, jdbcType=TINYINT},
          #{eventStatus, jdbcType=TINYINT},
          now()
        )
    </insert>

所以就在          #{content, jdbcType=VARCHAR} 一行後面添加了個逗號,然後重新支行,問題得到解決。

以後寫代碼還是要認真的,遇到問題也要細心分析和查看報錯位置代碼中的每一個細節是否有誤

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章