博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ibatis批量新增-自增长序列
阅读量:6630 次
发布时间:2019-06-25

本文共 1458 字,大约阅读时间需要 4 分钟。

hot3.png

第一种解决思路:使用存储过程批量生成序列并返回集合。

存储过程:

CREATE OR REPLACE PROCEDURE proce_seq(V_SEQ IN VARCHAR2,                                   NUM   IN INTEGER,                                   P_CUR OUT SYS_REFCURSOR) AS                                    /*********************************************************************   名称: proce_seq   功能描述: 获取制定序列集合   创建人: 张驰   处理逻辑:传入序列名称和所需数量返回序列集合   修改记录:   创建日期: 2015-11-10   备注:  **********************************************************************/                                     V_SQL VARCHAR2(500);  I    NUMBER;BEGIN EXECUTE immediate 'truncate table  T_SEQ_TEMP';  FOR I IN 1 .. NUM LOOP    V_SQL := 'INSERT INTO T_SEQ_TEMP SELECT ' || V_SEQ || '.nextval from dual';    EXECUTE IMMEDIATE V_SQL;	COMMIT;  END LOOP;  OPEN P_CUR FOR    SELECT * FROM T_SEQ_TEMP;END proce_seq;

ibatis调用存储过程:

  
      
      
      
        
   { call PROCE_SEQ(?,?,?)}  

这种方式需动态的把序列名称和所要获取的序列数量传给存储过程,然后已游标的形式返回结果集。但是这种方式有一个致命的确定就是再存储过程执行中需要向临时表中存放序列,这要再数据模型上会多出一张临时表同事会执行commit动作。一旦commit,那么在我们的Java代码里对事物的控制就会受到影响    

第二种解决思路:使用 CONNECT BY循环(推荐使用)。

StringBuffer sql = new StringBuffer();sql.append("select ").append(seqName).append(".NEXTVAL AS SEQ FROM DUAL CONNECT BY ROWNUM <= ").append(number);map.put("PROCE_SEQ", sql);List
> mapList =  this.getDao().find("OtherEntity.callSeqList", map);
 
     

 

转载于:https://my.oschina.net/zhangshuge/blog/635245

你可能感兴趣的文章
如何去除My97 DatePicker控件上右键弹出官网的链接 - 如何debug混淆过的代码
查看>>
输入5个学生的信息(包括学号,姓名,英语成绩,计算机语言成绩和数据库成绩), 统计各学生的总分,然后将学生信息和统计结果存入test.txt文件中...
查看>>
BZOJ2337 [HNOI2011]XOR和路径
查看>>
C# 该行已经属于另一个表 ...
查看>>
android 避免线程的重复创建(HandlerThread、线程池)
查看>>
type的解释
查看>>
从自动驾驶到学习机器学习:解读2017科技发展的15大趋势
查看>>
在Linux中永久并安全删除文件和目录的方法
查看>>
全民直播时代 内容监管还得靠技术
查看>>
c++ 类的对象与指针
查看>>
java-JDBC
查看>>
Nginx Rewrite规则初探(转)
查看>>
黑魔法NSURLProtocol 可拦截网络加载
查看>>
Integration Services创建ETL包
查看>>
IE浏览器开发中遇到的问题
查看>>
php实现按utf8编码对字符串进行分割
查看>>
Ftp的断点下载实现
查看>>
[转载] ubuntu Authentication failure
查看>>
Ring0 - 链表
查看>>
修改数组之----splice
查看>>