问答文章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');
~如果你认可我的回答,请及时点击【采纳为满意回答】按钮
~~手机提问的朋友在客户端右上角评价点【满意】即可。
mybatis怎样批量插入数据到oracle,就算id自动增长问题

查询当前序列值就用 select SEQ_ID.CURRVAL from dual 在insert中例子如下:insert into tab_name(id)values(SEQ_ID.nextval);就可以了 当然 你也可以用lpad函数使id的位数一样 例如 lpad(SEQ_ID.nextval,10,'0');

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

public void ss(List&lt;User&gt; list) { for(User u : list) { dao.insert(u);} } 这样就批量了,mysql的insert into user values (), () 其实是mysql特有的一个插入变种,根本没有批量啦,是单个语句.

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

oracle里面没有自动增长的字段类型,只能通过sequence来实现。mybatis里面需要特殊配置一下。

C#的mybatis的批量导入到oracle数据库怎么做?

string connt = "Oracle的连接字符串";string sql = "select id,name,… from tablename";必须与ds中的一致 DataTable dt = ds.Defaults[0];OracleConnection conn = new OracleConnection(connstr);OracleCommand cmd = new OracleCommand(sql, conn);conn.Open();OracleDataAdapter da = new ...

mybatis 先插入主表数据,获得自增主键。然后作为从表的外键插入从表数据...

回答:先向a表插入数据,然后拿到a表刚插入的数据的id,然后再向b表插入数据

Mybatis+Oracle批量插入并返回主键ID(sys_guid())的问题

在进行批量插入Oracle数据库时,若主键采用系统生成的唯一标识符(sys_guid())而非自增或自定义生成,则如何批量获取这些主键ID成了一个挑战。本文旨在解决这一问题,提供一个可行的解决方案,希望对遇到同样问题的开发者有所帮助。首先,需要明确的是,若使用索引生成主键ID,网上已存在相应的解决方法。

mybatis 批量操作数据

mybatis的批量操作有两种方式,一是使用foreach标签,二是使用mybatis的BATCH模型 在xml中通过foreach对表数据进行循环操作 在oracle中不支持insert into product(name, type, price) values ('a', 'tv', 1233), ('b', 'ac', 3455),...('','','')这种形式的sql,因此oracle批量插入使用 in...

MyBatis 批量插入包含 BLOB 类型的数据到 Oracle 异常问题分析

把批量插入换成 MyBatis 的单条插入后,数据也能正常插入,所以确定问题还是在批量插入SQL 语句上。最终确定了问题原因:批量将 byte[] 保存到 BLOB 字段时,不能使用 Union all ,因为它使用from dual 从虚表查询获取数据。而从虚表取数据时,如果字段长度介于 2000-4000 之间时,Oracle 会将字段类型...

mybatis如何实现序列自增长

insert into TBL_ZONE (ID, NAME ) values (SEQ_ZONE.NEXTVAL, #{name,jdbcType=VARCHAR})&lt;/insert&gt; 二、MyBatis 插入时候获取自增主键方法有二 以MySQL5.5为例:方法1:&lt;insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="id"&gt; insert into person(name,pswd) ...

mybatis怎么批量插入数据库

你的意思应该是用oracle数据库的序列自动生成的主键id,那么 第一种方法:你可以在插入主键的时候用序列生成,就是为主键id赋值xxx_seq.nextval,这个序列是你创建的这个table的序列 第二种方法:你可以按照楼上说的,用主键映射,当然对于mysql这种有自增主键和oracle这种用序列的需要不同的设置,楼上...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
大量安卓用户逃离换iPhone 为什么越来越多安卓用户选择了iPhone 我是一个美发师我想去美国打工应该怎么办 弱弱的问一下 在国外打工期间失业 会影响绿卡的申请么 新源广场简介 家养乌龟一直泡在水里 有个半兽人名叫周杰伦是谁唱的 有一首歌里面歌词是“有个半兽人,他叫周杰伦,,,”后面的就不知道了... 有个半兽人名叫周杰伦的作者是谁,太无耻了! 12星座时间到底是按农历还是阳历 十二星座月份对应表是按阴历还是阳历划... 3分之1大括号4分之3小括号22分之3x减5+4小括号减6括号等于1怎么求 如何实现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播放器上 手机充电器输出是直流电还是交流电? 手机充电器输出电压及电流是多少? 各种手机的充电器的输出电流电压是多少? 手机充电器的输出电压和输出电流是多少?
  • 焦点

最新推荐

猜你喜欢

热门推荐