mybaits 配置insert 主键自动增长失效原因

本文分享了使用MyBatis框架时遇到的主键自增问题及解决方法,包括配置MySQL数据库表的主键自增属性以及调整JavaBean中主键字段的数据类型。

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

初次涉猎mybaits 框架和mysql 数据库导致框架使用出现很多的低级失误,在此分享给大家避免此类错误:

配置文件

<insert id="insertUser1" parameterType="domain.User"
 useGeneratedKeys="true"  keyProperty="ID">
 </insert>

javabean

public class User {
    private  Integer id ;
    private String username;
    private Date birthday;
    private int sex;
    private String address;
    .
    .
    .

测试类

    public void insertData() throws Exception{
        //通过sqlSessionFactory工厂来生成sqlSessioin
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //namespace+sql语句的ID

        User user = new User();
        user.setUsername("NB1121");
        user.setBirthday(new Date());
        user.setSex(1);
        //user.setId(1231);
        user.setAddress("辽宁沈阳");
        sqlSession.insert("test.insertUser", user); 
        System.out.println(user.getId());

        sqlSession.commit();
        sqlSession.close();
        System.out.println(total);
    }

* 出现了 以下两种错误*

  1. mybaits 设置为主键自增长,但是每次插入插入的主键都是0导致主键冲突
  2. 插入时主键为空。

  1. 第一种情况 是因为mysql数据库建表的时候没有设置为主键自动增长
    这里写图片描述
    2.插入主键为空的原因是因为id 主键的类型为Integer 不是int原生类型,插入时没能自动拆箱、所以就将主键设置为空了。(应该是这样)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值