mybatis plus 在xml中编写insert语句,如何生成id ?

大家好,项目中使用的是mybatis-plus,所有实体类的id都是都是雪花算法生成,我想写一个通用的新增方法,如下:

mapper:

void insertData(InsertVo insertVo);

xml:

    <insert id="insertData" parameterType="InsertVo">
        INSERT INTO ${table}
        (
            id,
            ${column1} ,
            ${column2}
        )
        VALUES
        <foreach collection="c2values" item="value" index="index" separator="," >
            (
            REPLACE(UUID(), '-', ''),
            #{c1value},
            #{value}
            )
        </foreach>
    </insert>

上面方法可以生成id,但是却与mybatis-plus的雪花算法生成的id格式不同,我想问是否有方法可以让mybatis-plus自动为我的代码生成id,就类似mybatis-plus的save(T entity)方法那种效果。或者是在xml中可以调用mybatis-plus的雪花算法方法也可以。谢谢!

阅读 6k
2 个回答

image.png
mybatis plus的处理,基本宣告了你想不改造点东西,直接通过mybatis plus去实现的想法不可实现(tableInfo被初始化,只能是通用mapper的方法);
实现方案也挺多的,一种方案是mybatis插件,想要啥有啥,再一种就是自己实现通用mapper,采用第二种写个demo
image.png
image.png
image.png
image.png

运行结果:
image.png
image.png

mybatis plus 提供了批量插入和更新的方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题