package me.gall.business.model.mybatis.bean;
/**
* @author Quinn He
* @dateTime 2012-2-9 下午4:35:18
*
*/
public class ApkStatisticRaw {
private Integer id;
private String uuid;
private String apkId;
private String eventId;
private Integer supplyId;
private Integer channelId;
private String fileUploadRecordId;
private String productName;
private String content;
private Long time;
private Integer numbers;
private Integer status;
private String creator;
private Long createTime;
private String other;
set...
get...
}
interface
import me.gall.business.model.mybatis.bean.ApkStatisticRaw;
/**
* @author Quinn He
* @dateTime 2012-2-20 下午7:48:39
*/
public interface ApkStatisticRawExtMapper {
/**
* 专门针对在导入CSV文件时
* 频繁操作数据库造成的数据库并发问题
* 固此方法为批量插入方法
*
* @author Quinn He
* @dateTime 2012-3-30 上午11:34:22
* @param list
*/
void batchInsert(List list);
}
再看看XML里的操作
insert into apk_statistic_raw
(uuid,apk_id,event_id,supply_id,channel_id,file_upload_record_id,product_name,content,time,numbers,status,creator,create_time,other
)values
separator=",">
(#{item.uuid,jdbcType=CHAR},#{item.apkId,jdbcType=CHAR},#{item.eventId,jdbcType=CHAR},#{item.supplyId,jdbcType=INTEGER},#{item.channelId,jdbcType=INTEGER}
,#{item.fileUploadRecordId,jdbcType=CHAR},#{item.productName,jdbcType=VARCHAR},#{item.content,jdbcType=VARCHAR},#{item.time,jdbcType=BIGINT},
#{item.numbers,jdbcType=INTEGER},#{item.status,jdbcType=INTEGER},#{item.creator,jdbcType=VARCHAR},#{item.createTime,jdbcType=BIGINT},#{item.other,jdbcType=VARCHAR}
)
如此简单的操作,我也不做多说吧。相信都能看懂#{item.uuid,jdbcType=CHAR}其中uuid是对象的字段,CHAR是对应的数据库字段类型
分享到:
2012-03-30 19:50
浏览 27190
论坛回复 / 浏览 (5 / 14367)
评论
15 楼
renzhengzhi
2015-08-24
mybatis的这个批量insert为什么不是在一个事务里?
14 楼
hekuilove
2014-03-20
恋上你的味道 写道
花家狗V587 一统江湖
聋家狗 FU*CK YOU
13 楼
恋上你的味道
2014-03-20
花家狗V587 一统江湖
12 楼
hekuilove
2014-01-21
qianmo666 写道
最大插入量是多少?
我当时的业务是导入csv到数据库里,当时一个excel多则上百万条,少则几万条
,由于太多,我就1000条一次执行一次批量,插完为止。。
当时用的数据库是MySQL,我最近用oracle也有一个类似的情况想这样干结果不行了,oracle不支持这种语法
11 楼
qianmo666
2014-01-06
最大插入量是多少?
10 楼
RyanLu
2013-01-09
请问如果我的ID是自增长的,我批量插入的时候,每个domain object的id,能返回吗?尝试过在里面加好像不起作用。我用是sql server 2005
SELECT SCOPE_IDENTITY() AS id
insert into itd.Approval (ApplicationId, ApproverId, ApproverProjectId, Priority, Status, ApprovedTime, Comments) select #{item.applicationId,jdbcType=INTEGER}, #{item.approverId,jdbcType=INTEGER}, #{item.approverProjectId,jdbcType=INTEGER}, #{item.priority,jdbcType=INTEGER}, #{item.status,jdbcType=CHAR}, #{item.approvedTime,jdbcType=TIMESTAMP}, #{item.comments,jdbcType=NVARCHAR}
9 楼
zq93741833
2012-11-23
小五哥丶 写道
妹的,全是SELECT,
select标签里面是可以包含insert语句
8 楼
hekuilove
2012-11-06
hanzhicheng754 写道
哥们,你插入的最大量是多少?
我是把大量的数据拆开来N个1000条来执行的,执行N次
哥们,你插入的最大量是多少?
6 楼
hekuilove
2012-10-24
natian306 写道
select? 确定不是insert? 楼主是否直接用的mapper操作? 是否有dao的实现类?
当然确定,select一样一样的。。insert也行。。没实现类
5 楼
natian306
2012-10-21
select? 确定不是insert? 楼主是否直接用的mapper操作? 是否有dao的实现类?
4 楼
hekuilove
2012-10-11
kingliu 写道
哥们儿,你用的什么数据库,我用sybase发现不行啊
我的是MySQL
3 楼
kingliu
2012-10-11
哥们儿,你用的什么数据库,我用sybase发现不行啊
2 楼
j315321
2012-05-22
能不能把批量操作的java方法贴出来看看,谢……
1 楼
小五哥丶
2012-04-20
妹的,全是SELECT,