首页 > 学院 > 开发设计 > 正文

Mybatis批量添加的mapper

2019-11-08 03:01:40
字体:
来源:转载
供稿:网友

Oracle数据库操作的批量添加任务写法参考

<!-- 批量添加故障代码信息 --> <insert id="addlist" parameterType="java.util.List"> <!-- <selectKey keyPRoperty="errorId" resultType="java.lang.String" order="BEFORE"> SELECT SEQ_ERROR_CODE.NEXTVAL AS ERROR_ID FROM DUAL </selectKey> --> <![CDATA[ INSERT INTO ERROR_CODE (ERROR_ID, ERROR_CODE, ERROR_LEVEL, ERROR_DESC, ERROR_REASON, SUB_SYSTEM, IMPACT_VEHICLE, VEHICLE_TYPE, GUIDE_INFO_V0, GUIDE_INFO_V1, GUIDE_INFO_V2, PORT_ID, Word_OFFSET, BYTE_OFFSET, ADD_USER_ID, ADD_TIME, UPDATE_USER_ID, UPDATE_TIME, VERSION ) ]]> <foreach collection="list" item="item" index="index" separator="UNION ALL"> SELECT error_code_id(), #{item.errorCode}, <if test="item.errorLevel != null and item.errorLevel != '' "> #{item.errorLevel,jdbcType=VARCHAR}, </if> <if test="item.errorLevel == null or item.errorLevel == '' "> '', </if> #{item.errorDesc}, #{item.errorReason}, #{item.subSystem}, #{item.impactVehicle,jdbcType=VARCHAR}, #{item.vehicle}, #{item.guidV0}, #{item.guidV1}, #{item.guidV2}, #{item.port}, #{item.wordOffset}, #{item.byteOffset}, #{item.addUserId}, SYSDATE, #{item.updateUserId}, SYSDATE, 0 FROM DUAL </foreach> </insert>

上面的参考文件中注意Oracle主键的生成,如果是单独添加一条记录直接使用:

<selectKey keyProperty="errorId" resultType="java.lang.String" order="BEFORE"> SELECT SEQ_ERROR_CODE.NEXTVAL AS ERROR_ID FROM DUAL </selectKey>

但是批量添加的话(注意oracle批量添加的写法:在foreach中使用 select 。。。from dual) 是在oracle数据库中定义了一个产生主键的函数,在函数中其实也是用的序列来产生的SEQ_ERROR_CODE.NEXTVAL 函数内容如下:

CREATE OR REPLACE FUNCTION "ERROR_CODE_ID"RETURN NUMBERASnum NUMBER ;BEGIN SELECT SEQ_ERROR_CODE.NEXTVAL INTO num FROM DUAL ;RETURN num;END;

MySQL数据库操作的批量添加任务写法参考

<!-- 批量添加权限按钮信息 --> <insert id="addList" parameterType="java.util.List"> <!-- <selectKey resultType="long" keyProperty="btn_id" order="AFTER"> SELECT LAST_INSERT_ID() </selectKey> --> <!-- BUTTON_ID 是主键,如果mysql中设置为主键自动增长,请忽略此属性 --> <![CDATA[ INSERT INTO sys_function ( BUTTON_ID, BUTTON_1_ID, BUTTON_2_ID, BUTTON_3_ID, BUTTON_PAGE_ID, BUTTON_NAME, BUTTON_FUNCTION, BUTTON_URL, ADD_USER_ID, ADD_TIME, UPDATE_USER_ID, UPDATE_TIME, VERSION ) VALUES ]]> <foreach collection="list" item="item" index="index" separator=","> ( #{item.btn_id}, #{item.btn_1_id}, #{item.btn_2_id}, #{item.btn_3_id}, #{item.btn_page_id}, #{item.btn_name}, #{item.btn_func}, #{item.btn_url}, #{item.sys_user}, NOW(), #{item.sys_user}, NOW(), 0 ) </foreach> </insert>
上一篇:

下一篇:合法括号序列判断练习

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表