IBatis 批量插入数据之SqlBulkCopy
public void AddLetters(IList<int> customerIds, string title, string content, LetterEnum.LetterType type)
{
// 插入内容,获取内容ID
var msgContentId = this.AddLetterContent(title, content, 2); // 站内信接收者表字段初始化
var letterDataTable = this.InitDataTable();
foreach (var customerId in customerIds)
{
var letterDataRow = letterDataTable.NewRow(); letterDataRow["CustomerId"] = customerId; letterDataRow["MsgContentId"] = msgContentId; letterDataTable.Rows.Add(letterDataRow);
} using (var conn = new SqlConnection(_sqlMapper.DataSource.ConnectionString))
{
conn.Open(); using (var sqlBulkCopy = new SqlBulkCopy(conn))
{
sqlBulkCopy.DestinationTableName = "Letter";
sqlBulkCopy.BatchSize = letterDataTable.Rows.Count; if (letterDataTable.Rows.Count > 0)
{
sqlBulkCopy.WriteToServer(letterDataTable);
}
}
}
} /// <summary>
/// 初始化Letter表结构
/// </summary>
private DataTable InitDataTable()
{
var dataTable = new DataTable(); using (var conn = new SqlConnection(_sqlMapper.DataSource.ConnectionString))
{
var queryString = string.Format(@"select top 0 * from {0}", "Letter");
var adapter = new SqlDataAdapter(queryString, conn);
adapter.Fill(dataTable); } return dataTable;
}
IBatis 批量插入数据之SqlBulkCopy的更多相关文章
- Java使用iBatis批量插入数据到Oracle数据库
Java使用iBatis批量插入数据到Oracle数据库 因为我们的数据跨库(mysql,oracle),单独取数据的话需要遍历好多遍,所以就想着先从mysql数据库中取出来的数据然后在oracle数 ...
- C# 数据库批量插入数据之 —— SqlBulkCopy、表值参数
创建了一个用来测试的Student表: CREATE TABLE [dbo].[Student]( [ID] [int] PRIMARY KEY NOT NULL, ) NULL, ) NULL, [ ...
- IBatis批量插入数据
IBatis插入注意,数据量比较多的花,需要分批插入,策略是dao里面控制插入批次,mapper里面批量插入即可 @Override public Long insertBatch(List<W ...
- SQL Server 批量插入数据方案 SqlBulkCopy 的简单封装,让批量插入更方便
一.Sql Server插入方案介绍 关于 SqlServer 批量插入的方式,有三种比较常用的插入方式,Insert.BatchInsert.SqlBulkCopy,下面我们对比以下三种方案的速度 ...
- IBatis 批量插入数据
sql语句 <!--批量插入待收流水--> <insert id="BatchInsertOrder" parameterClass="ArrayLis ...
- 批量插入数据 C# SqlBulkCopy使用
转自:http://blog.csdn.net/wangzh300/article/details/7382506 private static void DataTableToSQLServer( ...
- .Net批量插入数据到SQLServer数据库,System.Data.SqlClient.SqlBulkCopy类批量插入大数据到数据库
批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储 ...
- sql 中的Bulk和C# 中的SqlBulkCopy批量插入数据 ( 回顾 and 粗谈 )
通常,我们会对于一个文本文件数据导入到数据库中,不多说,上代码. 首先,表结构如下. 其次,在我当前D盘中有个文本文件名为2.txt的文件. 在数据库中,可以这样通过一句代码插入. Bulk in ...
- C# 批量插入表SQLSERVER SqlBulkCopy往数据库中批量插入数据
#region 帮助实例:SQL 批量插入数据 多种方法 /// <summary> /// SqlBulkCopy往数据库中批量插入数据 /// </summary> /// ...
随机推荐
- SQLite学习笔记(八)&&sqlite实现架构
该系列的前面一些文章我重点讲了sqlite的核心功能,比如封锁机制,共享缓存,以及事务管理等.但对于sqlite的整体没有作一个全面的介绍,本文将从实现的层面,整体介绍sqlite的框架.各个核心模块 ...
- Forbidden You don't have permission to access / on this server PHP
在新安装的谷歌游览器里,打不了PHP网站了,错误显示: Forbidden You don't have permission to access / on this server. 原因还是配置权限 ...
- [有意思]The IT workers of Star Wars -- That's not a bug. It's a feature
Yeah, that Artoo is kinda mouthy... ... now select, "restore to factory settings." That'll ...
- jedis2.4.2连接池配置说明
大多数情况使用jedis时用的都是默认配置,但有的时候为了调优,提供应用程序的性能,那我们就要知道jedis中参数的意义. JedisPoolConfig config = new JedisPool ...
- awk-笔记
语法形式: awk [options] 'script' var=value file1 [file...] awk [options] -f scriptfile var=value file [f ...
- MVC PartialView
参考 Updating an MVC Partial View with Ajax RenderPartial vs RenderAction vs Partial vs Action in MV ...
- HDU3555 Bomb[数位DP]
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
- POJ1961[KMP 失配函数]
Period Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 16776 Accepted: 8077 Descripti ...
- python基础之编码问题
python基础之编码问题 本节内容 字符串编码问题由来 字符串编码解决方案 1.字符串编码问题由来 由于字符串编码是从ascii--->unicode--->utf-8(utf-16和u ...
- 用extract-text-webpack-plugin提取出来的css文件中背景图片url的不正确的问题
在一个main.js中require一个scss文件,scss文件中用了背景图片,图片url是用的相对路径,用extract-text-webpack-plugin插件提取出的css文件背景图片路径不 ...