本发明涉及mysql
技术领域:
:,特别涉及一种基于mysqlbulkloader实现将大量数据导入mysql数据库的方法。
背景技术:
::在软件的生命周期中,经常遇到由于业务发展,系统迭代更新带来的数据迁移工作;或者软件系统本身的重构抑或其他因素,几乎都需要对数据进行迁移。而由于数据量太过庞大,数据表都过百万,常用的dapper已经无法满足。mysql是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。。本发明主要是使用mysql里的mysqlbulkloader对象,通过中间数据的csv文件,提供了一种更加高效快捷的数据导入到mysql数据库的方法。技术实现要素:本发明解决的技术问题在于提供一种基于mysqlbulkloader实现将大量数据导入mysql数据库的方法;本发明解决了当mysql数据库要添加的数据量过于庞大时数据导入缓慢低效的问题本发明解决上述技术问题的技术方案是:一、创建导出数据的数据库对象并设置数据来源;二、遍历循环导出数据源,生成csv文件;三、创建导入的mysql数据库对象并设置数据接收源;四、获取生成的csv文件路径;五、创建mysql的mysqlbulkloader并读取csv文件;六、导入成功。所述的方法具体包括如下步骤:步骤一、创建导出数据的数据库对象并设置数据来源,如数据库类型,数据库表名;步骤二、遍历循环导出数据源,生成csv文件;步骤三、创建导入的mysql数据库对象并设置数据接收源,用来接收导出的数据;步骤四、获取生成的csv文件路径;步骤五、创建mysql的mysqlbulkloader并读取csv文件;步骤六、导入成功,得到的返回值大于0;本发明的有益效果:将要导出的数据源转化为csv文件,再通过mysqlbulkloader对象把生成的csv文件导入到mysql数据库中。有效本发明解决了当mysql数据库要添加的数据量过于庞大时数据导入缓慢低效的问题附图说明下面结合附图对本发明进一步说明:图1为本发明的流程图。具体实施方式如图1所示,本发明采用如下步骤:步骤一、创建导出数据的数据库对象并设置数据来源,如数据库类型,数据库表名;如:consql=string.format(@"server={0},{1};database={2};uid={3};pwd={4};",ip.text,port.text,database.text,username.text,password.text);idboperator=datamigration.getdatatype("sqlserver",consql);步骤二、遍历循环导出数据源,生成csv文件;如:publicvoidtocsvfile(datatabletable){stringbuilderstringbuilder=newstringbuilder();datacolumndcolum;foreach(datarowrowintable.rows){for(inti=0;i
().select(colum=>colum.columnname).toarray();mysqlbulkloadermysqlbulkloaderbulk=newmysqlbulkloader(_mysqlconnection){fieldterminator=",",fieldquotationcharacter='"',escapecharacter='"',lineterminator="\r\n",filename=datatable.tablename+".csv",numberoflinestoskip=0,tablename=datatable.tablename,};mysqlbulkloaderbulk.datatablecolumns.addrange(datatablecolumns);intresult=mysqlbulkloaderbulk.load();returnresult;}catch(exceptionex){throwex;}}步骤六、导入成功;如:intresult=0;result=((mysqldboperator)idboperator_mysql).tocsv(privicelocaltable);if(result>0){//导入成功}。当前第1页1 2 3 当前第1页1 2 3