DataRabbit 轻量的数据访问框架(15)-- IOrmAccesser的BatchInsert批量插入!

简介: DataRabbit3.0为ORM访问器提供了批量插入的功能,其方法定义如下:        ///         /// BatchInsert 批量插入一组记录。忽略所有Blob字段。        ///                void BatchInsert(IList entityList);     当我们需要一次性向同一Table中插入大量(如千条以上)的记录时,使用BatchInsert方法可以显著的提供性能。
   DataRabbit3.0为ORM访问器提供了批量插入的功能,其方法定义如下:
         ///   <summary>
        
///  BatchInsert 批量插入一组记录。忽略所有Blob字段。
        
///   </summary>        
         void  BatchInsert(IList < EntityType >  entityList);
     当我们需要一次性向同一Table中插入大量(如千条以上)的记录时,使用BatchInsert方法可以显著的提供性能。
   我们还是以DataRabbit 轻量的数据访问框架(14)-- DataRabbit 3.0 与 Linq to sql 性能比较 一文中的例子来看看性能的变化。
   在前文的例子中,我们是这样插入1000条记录的:
         for  ( int  i  =   2000 ; i  <   3000 ; i ++ )
         {
              accesser.Insert(
new  LinqTest.MyOrm.Customer(i,  " Peng " 434100 ));
         }

   使用BatchInsert方法,我们可以这样做:

          IList < LinqTest.MyOrm.Customer >  cusList  =   new  List < LinqTest.MyOrm.Customer > ();
          
for  ( int  i  =   2000 ; i  <   3000 ; i ++ )
          {
              cusList.Add(
new  LinqTest.MyOrm.Customer(i,  " Peng " 434100 ));
          }
          accesser.BatchInsert(cusList);

   下面是测试的性能结果比较:

   性能提升了24倍之多,这个结果还是非常不错的,所以大批量插入Entity时,推荐使用BatchInsert方法。

   注意,BatchInsert方法在批量插入数据时将忽略所有的Blob字段。

目录
相关文章
|
4月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
58 1
|
SQL 存储 缓存
gin框架学习-GORM框架进阶之CRUD接口(数据库增删改查操作)
First、Last 方法会根据主键查找到第一个、最后一个记录, 它仅在通过结构体 struct 或提供 model 值进行查询时才起作用。
1068 0
|
SQL 缓存 Oracle
1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)
1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主从库、多库的需求。
3702 0
|
数据库连接 数据库 负载均衡
DataRabbit 轻量的数据访问框架(19)-- 读写分离与隔离级别
在高并发的系统中,我们常采用多数据库分散放置、读写分离、细粒度的隔离级别设定等策略来提高系统的性能。DataRabbit3.3 以及以上版本对这三种策略都给予了内置的支持。 (1)数据库分散放置:对于较大型的系统,在设计数据库时,我们可以根据业务范围将其设计为多个数据库,而不是一个,然后将这些数据库部署在不同的物理服务器上,以分担负载。
859 0
|
数据库 Java Spring
DataRabbit 轻量的ORM框架(17)-- 使用DataRabbit的最佳实践
在DataRabbit 轻量的数据访问框架(12)-- 将DataRabbit融入架构 一文中介绍了如何将DataRabbit与三层架构结合起来,但是,在实际的项目中,每一层是如何使用DataRabbit的了?本文将展示作者在项目中使用DataRabbit的标准做法。
715 0
|
SQL 数据库
DataRabbit 轻量的ORM框架(18)-- 捕获数据库访问异常的详细信息
最新版本的DataRabbit(版本号:V3.2)新增一项重要功能--可以捕获访问数据库时产生的异常的详细信息,包括:异常对象、Sql语句、sql参数的名称和值。这是由IDBOperationLogger接口提供支持的。
849 0
|
SQL .NET 开发框架
DataRabbit 轻量的数据访问框架(14)-- DataRabbit 3.0 与 Linq to sql 性能比较
今天装好了VS2008 Beta2,就迫不及待地试用一下Linq中的ORM功能,在初步尝试后,发现Linq中的ORM还是非常不错的,通过反射查看System.Data.Linq.dll发现,Linq中的ORM是使用反射完成了OR的映射工作,基于此,我开始有点怀疑Linq中的ORM的性能问题。
943 0
|
索引 缓存
DataRabbit 轻量的数据访问框架(10) -- IPagerManager
(完全限定类名:DataRabbit.Core.IPagerManager)   DataRabbit框架提供了对单表查询的结果进行分页的功能,这就是IPagerManager所完成的目标。我们可以从DataRabbit的入口点IDataAccesser中获取IPagerManager引用:     PagerParameters param = .
810 0
|
存储 数据库
DataRabbit 轻量的数据访问框架(07) -- ISPAccesser
(完全限定类名:DataRabbit.Relation.ISPAccesser)       虽然IRelationAccesser可以调用一些不含out参数的存储过程,但是在DataRabbit中调用存储过程最好是通过ISPAccesser接口来进行。
1115 0