mybatis中设置主键自增

记录一下自己犯的很蠢的问题,记性不好怕忘

在mybatis配置文件中加入:

<settings>
<!-- 
允许JDBC支持自动生成主键,需要驱动兼容。 
如果设置为true则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作(比如 Derby)。 
-->
<setting name="useGeneratedKeys" value="true" />
</settings>

useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。

在mapper.xml中:keyProperty=”对应的主键的对象”

<insert id="xxx" parameterType="xxx"  keyProperty="id">
        insert into tablename(id) values(#{id})
        </insert>

在做到这的时候,我以为大功告成,结果抛出了一个异常

Cause: java.sql.SQLException: Field 'work_id' doesn't have a default value

看到这个我有点懵,我以为是配置没有生效,clean一下继续跑,还是这样。
找了半天,发现是建表的时候没有设置主键自增… =_= 丨丨丨

加上主键自增

alter table tablename modify id bigint(20) auto_increment;

给自增值设置初始值

alter table tablename auto_increment=1;

搞定。
问题很蠢,见笑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值