Mybatis在mapper.xml中获取分布式唯一id


前言

当前端传入的列表数据,后端需要做批量插入的时候,肯定是缺少主键ID的,如果在内存中去循环生成添加UUID,是不是会显得不够优雅,而且影响性能和效率

提示:以下是本篇文章正文内容,下面案例可供参考

一、Mybatis生成主键ID的方法

如下图所示:

获取主键ID的方法

可以在mybatis的这个包中看到有生成long类型的UUID

二、使用步骤

1.引入Mybatis相关依赖

代码如下(示例):版本号自己根据需要指定

 <dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>mybatis-plus-boot-starter</artifactId>
     <version>${mybatis-plus.version}</version>
 </dependency>

2.mapper.xml的写法

代码如下(示例):

<insert id="saveArticleLabel">
    INSERT INTO table_article_label(id, article_id, label_id)
    VALUES
    <foreach collection="labelIds" item="item" separator=",">
        ( '${@com.baomidou.mybatisplus.core.toolkit.IdWorker@getId()}', #{articleId}, #{item})
    </foreach>
</insert>

这样写就可以获取到id

 ${@com.baomidou.mybatisplus.core.toolkit.IdWorker@getId()}

总结

这样写不仅提升了效率,代码也会显得很优雅,你的关注就是我的动力
在这里插入图片描述

`org.mybatis.spring.MyBatisSystemException` 是 MyBatis-Spring 框架抛出的一个异常,它通常表示在使用 MyBatis 进行数据库操作时遇到了严重的问题,可能是配置错误、数据源问题、SQL执行失败或者是 Spring 与 MyBatis 的集成不当等原因导致的。解决这类异常通常需要按照以下步骤进行: 1. **检查日志**:查看详细的异常堆栈信息,这会在日志文件(如 logback.xml 或 log4j.properties),通常会提供关于异常发生的具体位置和原因的线索。 2. **检查配置**:确保 MyBatis 的配置(mybatis-config.xml)正确无误,包括数据源(DataSource)、SqlSessionFactory 的创建、Mapper 的扫描路径等。 3. **Spring 配置**:确认 Spring 和 MyBatis 的整合配置是否正确,比如 MapperScannerConfigurer 或 sqlSessionTemplate 等。 4. **SQL问题**:检查 SQL 语句是否有语法错误,参数绑定是否正确,以及动态查询的条件表达式是否能够正确解析。 5. **事务管理**:确认事务的开启、提交和回滚是否在预期范围内,特别是在分布式环境下,分布式事务配置可能会影响 MyBatis 的执行。 6. **依赖版本**:确认使用的 MyBatis、Spring 和其他依赖库的版本是否兼容,有时候版本冲突也可能引发此类问题。 7. **逐步调试**:如果以上都无法确定问题,可以尝试编写一些测试用例,通过单元测试或集成测试逐步定位问题。 如果遇到具体的异常实例,提供具体的异常信息将有助于给出更精准的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰色天空灬灬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值