Mybatis复制记录直接插入

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MCJ_2017/article/details/79855044

实际开发中,我们可能会遇到需要备份某些记录,为了方便备份,一条SQL就可以搞定。

举例:

1、根据旧id复制一份记录,新旧id传入

mybatis配置如下:

<insert id="copyModelInfoByid" parameterType="java.lang.String">
        INSERT INTO `ldp_analy_model_info` 
        SELECT
            #{newid},model_type,model_classfication,model_name,model_trade_type,
            model_business_type,audit_matters,model_purpose,input_data,analysis_steps,
            regulation,model_sql_type,model_sql,'1',other_model,
            resource_flag,dept_code,org_code,col_num,create_by,create_time
        FROM
            ldp_analy_model_info
        WHERE
            id = #{oldid}
    </insert>

mapper配置如下:

int copyModelInfoByid(@Param("oldid")String id, @Param("newid")String newid);

2、复制的新记录id需要UUID生成的方法

mybatis配置如下:

<insert id="copyModelParamByModelid" parameterType="java.lang.String">
        INSERT INTO ldp_analy_model_param 
        SELECT
            replace(uuid(),'-',''),#{newModelid},param_name,param_desc,param_type,value_pattren,default_value,
            default_value_view,allow_null,value_list,sql_text,display_col_map,tree_col_map,
            sort_by,display_flag,create_by,create_time
        FROM
            ldp_analy_model_param
        WHERE
            model_id = #{oldmodelid}
    </insert>

mapper配置如下:

int copyModelParamByModelid(@Param("oldmodelid")String modelid, @Param("newModelid")String newModelid);

注:支持复制一条记录和多条记录

猜你喜欢

转载自blog.csdn.net/MCJ_2017/article/details/79855044
今日推荐