mybatis怎样批量插入数据到oracle,就算id自动增长问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis怎样批量插入数据到oracle,就算id自动增长问题相关的知识,希望对你有一定的参考价值。
需要在oracle中建立一个队列 代码如下:create sequence SEQ_ID
minvalue 1
maxvalue 999999999
start with 0
increment by 1
cache 20;
查询下一个序列值就用 select SEQ_ID.Nextval from dual
查询当前序列值就用 select SEQ_ID.CURRVAL from dual
在insert中例子如下:
insert into tab_name(id)values(SEQ_ID.nextval);就可以了 当然 你也可以用lpad函数使id的位数一样 例如 lpad(SEQ_ID.nextval,10,'0');
~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。 参考技术A Oracle数据库中有一个可以自动增长的序列Sequences,在这里你可以建立对哪张表实现自动增长,调用方式:名称+.nextval,例如你的sequence名称是seq_test,调用就用seq_test.nextval,至于你说的批量插入,可以根据自己的需求来操作,如果是前台传来的值,可以通过for循环等
希望对你有帮助
Mybatis+Oracle --批量插入
Oracle自增长ID:
mybatis语句
参考博客:点评 ibatis+oracle 批量插入的三种方法. 参考第三种
Oracle自增长ID,如下:
序列:
CREATE SEQUENCE "ENERGY"."ROLE_OBJECT_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 150 NOCACHE NOORDER NOCYCLE ;
触发器:
CREATE OR REPLACE TRIGGER TRIGGER_ROLE_OBJECT BEFORE INSERT ON SYS_RIGHT_ROLE_OBJECT FOR EACH ROW BEGIN SELECT ROLE_OBJECT_SEQ.nextval into :new.ROLE_OBJECT_ID from dual; END;
Mybatis :
<insert id="insertSelectiveByList" parameterType="java.util.List"> insert into SYS_RIGHT_ROLE_OBJECT (ROLE_CODE, OBJECT_CODE, POLICY_ID, PERMISSION) <foreach collection="list" item="item" index="index" open="(" close=")" separator="UNION ALL"> SELECT #{item.roleCode} AS ROLE_CODE, #{item.objectCode} AS OBJECT_CODE, #{item.policyId} AS POLICY_ID, #{item.permission} AS PERMISSION FROM dual </foreach> </insert>
以上是关于mybatis怎样批量插入数据到oracle,就算id自动增长问题的主要内容,如果未能解决你的问题,请参考以下文章
MyBatis 批量插入包含 BLOB 类型的数据到 Oracle 异常问题分析