问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mybatis怎样批量插入数据到oracle,就算id自动增长问题

发布网友 发布时间:2022-04-22 23:29

我来回答

2个回答

懂视网 时间:2022-04-07 23:21

Oracle):

<!-- 批量插入临时表-->

<insert id="insertTempPhoneBatch"parameterType="java.util.HashMap" >

insert into ce_tempPhone_info(phone)

(

<foreach collection="list"item="item" separator="union"opne="" close="" index="">

select #{item,jdbcType=VARCHAR} from dual

</foreach>

)

</insert>

Insert intoce_tempPhone_info(phone) (select xxx from dual union select yyy from dual …..);

  1. 解析:

    1. parameterType:

      1. 参数的类型可以是java.util.HashMap或者java.util.List

      2. 如果传入的类型是List的话可以两者都可以使用,List的会被封装成Map类型的;

    2. collection:

      1. 如果传入的是list集合,则此处写list;

      2. 数组类型,此处array;

    3. item:

      1. 循环的时候的变量;

      2. 如果传入的是list或array,则使用的时候直接使用#{item,jdbcType=VARCHAR}即可;

      3. 如果list中泛型是对象的话,必须使用#{item.phone,jdbcType=VARCHAR}类似形式

    4. index:

      1. 索引;

    5. open:

      1. 查询以什么开始;

      2. 如:open="(",则该foreach会以"("开头;

    1. close:

      1. 以什么符号结束;

    2. separator:

      1. 连接符,以什么进行每次循环的连接符;

  2. Java类:

Ce_sample_info info = new Ce_sample_info();

info.setProject_id(project_id);

for(int i=0;i<phones.length;i++){

info.setPhone(phones[i]);

//查询当前project_id和phone在ce_sample_info表中是否存在,不存在则插入

int count = baseDao.selectOne("ce_sample_infoMapper.queryProjectPhoneCount",info);

System.out.println("==========count===========" +count);

if(count == 0) {

String id =baseDao.selectOne("ce_sample_infoMapper.querySampleSeq");

info.setSample_id(id);

baseDao.insert("ce_sample_infoMapper.insertSelective",info);

}

}


本文出自 “随风” 博客,请务必保留此出处http://fuyanchao.blog.51cto.com/3752384/1654823

mybatis批量插入(Oracle)

标签:mybatis oracle 批量插入

热心网友 时间:2022-04-07 20:29

需要在oracle中建立一个队列 代码如下:
create sequence SEQ_ID
minvalue 1
maxvalue 999999999
start with 0
increment by 1
cache 20;
查询下一个序列值就用 select SEQ_ID.Nextval from al
查询当前序列值就用 select SEQ_ID.CURRVAL from al
在insert中例子如下:
insert into tab_name(id)values(SEQ_ID.nextval);就可以了 当然 你也可以用lpad函数使id的位数一样 例如 lpad(SEQ_ID.nextval,10,'0');
~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见好多鱼在水里活蹦乱跳 教你如何将让reaver PIN 进度随意更改精确前四位 求个保存PIN进度的方法 ...不上外接键盘,但鼠标一直有用,谁能告诉我怎么回事,先谢了。。_百度... 相机SD卡,卡上图片电脑显示不出来 相机SD卡用读卡器插到电脑上DCIM文件夹不显示照片怎么解决? win10查询错误日志的方法-win10怎么查询错误日志 电脑系统日志文件如何查看电脑里的系统日志 电脑事件日志在哪里看怎样查看电脑使用的日志 win11系统日志在哪里看 win11系统日志怎么看 如何实现sqlserver数据插入oracle数据库 Oracle批量插入数据(2条数据以上),自己如何根据规则生成唯一标识ID... 如何使用JDBC PreparedStatement对象批量处理更新和插入Oracle数据 oracle面试题:在一个上亿条数据的表中,批量插入大量数据,并根据内容重 ... oracle数据库 批量将原有数据表中数据插入新表 如何在oracle中某一列中批量添加内容 怎么把数据批量导入oracle中 oracle中怎么插入多条数据? 如何将数据批量导入Oracle数据库? mule 中怎么批量把这些数据插入Oracle数据库 教室里的黑板长多少米 黑板的长度是有多少米 学校里面用的黑板是多大的? 一般小学教室里面的黑板尺寸是多大? 黑板的尺寸大概是多少 一般黑板有多长 小学黑板的长宽各多长 学校的黑板一般长多少? 黑板尺寸标准是什么? 黑板的长度是多少米 上证指数是怎么计算出来的? 期货投资风险的两个指标是什么? 怎么看股指期货有多少空单,及对A股影响指标. 有没有详细介绍股指期货知识的? 股指期货现量、增仓 期货指数是什么 什么是股指期货? 股指期货成交量是单边还是双边计量 什么是换手交易 怎样把音乐下载到MP3里啊??? 怎样将MP3音乐下载到我的MP3 如何将歌曲下载到MP3中 怎样将歌曲下载到MP3上? 怎样将mp3中的歌曲拷出来 怎样把mp3下载 怎样将音乐下载到MP3上? 怎样把mp3下载到mp3播放器上 手机充电器输出是直流电还是交流电? 手机充电器输出电压及电流是多少? 各种手机的充电器的输出电流电压是多少? 手机充电器的输出电压和输出电流是多少?