首页 > 文章列表 > MySQL中如何使用Bulk Insert实现批量插入数据?

MySQL中如何使用Bulk Insert实现批量插入数据?

mysql
279 2023-05-03

mysql批量插入BulkCopy如何实现

一、新建项目:SqlSugarDemo

  <ItemGroup>

    <PackageReference Include="SqlSugarCore" Version="5.1.3.52" />

  </ItemGroup>

二、连接串未添加AllowLoadLocalInfile=true

中文提示 : BulkCopy MySql连接字符串需要添加 AllowLoadLocalInfile=true; 添加后如果还不行Mysql数据库执行一下 SET GLOBAL local_infile=1 

English Message : connection string add : AllowLoadLocalInfile=true

show global variables like 'local_infile';

SET GLOBAL local_infile=1

 三、Startup.cs

using Microsoft.AspNetCore.Builder;

using Microsoft.AspNetCore.Hosting;

using Microsoft.Extensions.Configuration;

using Microsoft.Extensions.DependencyInjection;

using Microsoft.Extensions.Hosting;

using SqlSugar;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

 

namespace WebApplication3

{

    public class Startup

    {

        public Startup(IConfiguration configuration)

        {

            Configuration = configuration;

        }

 

        public IConfiguration Configuration { get; }

 

        // This method gets called by the runtime. Use this method to add services to the container.

        public void ConfigureServices(IServiceCollection services)

        {

            services.AddSingleton<ISqlSugarClient>(s =>

            {

                SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig()

                {

                    DbType = SqlSugar.DbType.MySql,

                    ConnectionString = "Server=192.168.31.132;User ID=root;Password=123456;Database=sugar;port=3306;AllowLoadLocalInfile=true",

                    IsAutoCloseConnection = true,

                },

               db =>

               {

                   //单例参数配置,所有上下文生效

                   db.Aop.OnLogExecuting = (sql, pars) =>

                   {

                   };

               });

                return sqlSugar;

            });

 

            services.AddControllersWithViews();

        }

 

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

        {

            if (env.IsDevelopment())

            {

                app.UseDeveloperExceptionPage();

            }

            else

            {

                app.UseExceptionHandler("/Home/Error");

            }

            app.UseStaticFiles();

 

            app.UseRouting();

 

            app.UseAuthorization();

 

            app.UseEndpoints(endpoints =>

            {

                endpoints.MapControllerRoute(

                    name: "default",

                    pattern: "{controller=Home}/{action=Index}/{id?}");

            });

        }

    }

}

HomeController.cs

using Microsoft.AspNetCore.Mvc;

using Microsoft.Extensions.Logging;

using SqlSugar;

using System;

using System.Collections.Generic;

using System.Diagnostics;

using System.Linq;

using System.Threading.Tasks;

using WebApplication3.Models;

 

namespace WebApplication3.Controllers

{

    public class HomeController : Controller

    {

        private readonly ILogger<HomeController> _logger;

        private readonly ISqlSugarClient _sqlSugarClient;

        public HomeController(ILogger<HomeController> logger, ISqlSugarClient sqlSugarClient)

        {

            _logger = logger;

            _sqlSugarClient = sqlSugarClient;

        }

 

        public IActionResult Index()

        {

            _sqlSugarClient.Fastest<RealmAuctionDatum>().BulkCopy(GetList());

            return View();

        }

        public List<RealmAuctionDatum> GetList()

        {

            var datas = new List<RealmAuctionDatum>();

            for (int i = 0; i < 10000; i++)

            {

                datas.Add(new RealmAuctionDatum { Name = Guid.NewGuid().ToString("N") });

            }

            return datas;

        }

    }

}