在项目中,我们经常需要手动批量导入数据,这种操作既繁琐又容易出错。因此,我用c++++编写了一个用于生成sql脚本的工具,以简化这一过程。
Linux C++简单实现一个批量插入的sql脚本生成工具
需求说明
我们需要批量插入多个用户的收费信息,这些信息包括用户ID(不同)、所属区域代号、收费模式和费率值(相同)。手动拼接INSERT语句不仅工作量大,而且容易出错,因此我们通过编程来生成SQL脚本。
只需配置好相关参数,运行程序即可生成SQL脚本,之后可以直接交给数据库管理员处理。
C++程序代码
程序的核心流程是从main函数开始,首先读取配置文件(见小节3)中的数据,然后将用|分隔的用户ID进行分解。经过一系列操作后,拼接出所有的INSERT语句,最终将这些数据写入文件流中。
立即学习“C++免费学习笔记(深入)”;
该程序使用了C++的文件流读写、字符串查找和删除、以及将字符串切割成vector或map对象等功能。代码还可以进一步优化,例如参数的过滤检查、用户数量过多时分成多个INSERT语句、数据量大时使用多线程等。
配置文件
上面的C++程序会读取名为linux_file_basic1_2.txt的配置文件,可以使用#符号为数据添加注释。
Ffile_mode参数决定了SQL文件的写入方式:值为2时每次生成的数据会覆盖原文件中的数据;值为1时支持将多次生成的SQL数据追加到同一个SQL脚本文件中。
编译执行
使用《Linux C/C++工程中可生成ELF、动/静态库文件的通用Makefile》文中的Makefile进行编译:
Linux C++简单实现一个批量插入的sql脚本生成工具
然后执行生成的MySQL脚本如下:
Linux C++简单实现一个批量插入的sql脚本生成工具










