Mybatis 中 ID为null,但是仍然返回了数据

resultMap为:

SQL语句为:

Debug跟踪结果:

原因分析:ID为null,但是由于我在SQL语句当中添加了 ' ' as text,导致text不为NUll,于是分析是否是因为text字段的问题,我把 ' ' as text 改成了null as text 结果后,如下图所示,恢复正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis,有两种方式可以获取插入数据返回的自增主键ID。 一种方式是在XML文件设置属性。通过在插入语句上使用`<selectKey>`标签,在插入之前执行查询语句获取自增ID。例如,在PostgreSQL数据可以使用`currval()`函数获取自增ID。示例代码如下: ``` <insert id="insertUser" parameterType="User"> <selectKey statement="select currval('app_user_id_seq')" keyProperty="id" before="false" resultType="Long"/> INSERT INTO app_user (create_time, name, avatar, username, sex, id_number, score, ...) VALUES (#{createTime}, #{name}, #{avatar}, #{username}, #{sex}, #{id_number}, #{score}, ...) </insert> ``` 另一种方式是使用注解来实现。在插入方法上使用`@SelectKey`注解,其的`statement`属性指定查询语句,`keyProperty`属性指定返回的自增ID存放的属性名,`before`属性指定是否在插入之前执行查询语句,`resultType`属性指定返回的自增ID的类型。示例代码如下: ``` @Insert("INSERT INTO app_user (create_time, name, avatar, username, sex, id_number, score, ...) VALUES (#{createTime}, #{name}, #{avatar}, #{username}, #{sex}, #{id_number}, #{score}, ...)") @SelectKey(statement="select currval('app_user_id_seq')", keyProperty="id", before="false", resultType=Long.class) int insert(User user); ``` 通过以上两种方式,在插入数据后,可以获取到相应的自增主键ID。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [mybatis插入数据返回自增主键ID的2种方式](https://blog.csdn.net/lchmyhua88/article/details/125132281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [mybatis插入数据返回新增数据id值](https://blog.csdn.net/web13618542420/article/details/126112961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值