MySQl数据库-批量添加数据的两种方法

时间:2022-10-16 23:56:12
当你需要往数据表中添加数据,如果少量,手动添加其实没什么问题。但是当你需要测试大量数据时,比如要统计一年、一个月、一个星期的数据的区别,而且需求是必须每天都要有数据,这时就需要批量添加数据。在这里以user表为例,记录如何添加数据。

方法一:使用excel表格
方法二:使用insert语句(FileWriter批量写入)


使用excel表格

1.打开数据表,按照表的字段在excel中添加数据。注意:表中字段名必须和excel中的名称一致。
MySQl数据库-批量添加数据的两种方法

MySQl数据库-批量添加数据的两种方法

2.打开navicat,在表结构处右键选择“导入向导”,选择excel文件,找到excel文件所在的位置。注意:一个excel表格里可以有多个sheet,所以如果全选中的话,可以一次性分别导入多个数据表,但是一定要保证字段名不要错,否则导入的时候会显示错误。
MySQl数据库-批量添加数据的两种方法
MySQl数据库-批量添加数据的两种方法

3.选择下一步,到设置附加选项时,“栏位名称”是excel中字段的那一行,“第一个数据行”是数据开始的那一行。
MySQl数据库-批量添加数据的两种方法

4.下一步,选择“开始”,执行之后,选择“关闭”。
MySQl数据库-批量添加数据的两种方法

5.在数据表中刷新,发现数据就都导进来了。
MySQl数据库-批量添加数据的两种方法

使用insert语句(FileWriter批量写入)

定义一个写语句到文件的方法,在for循环里面定义自己需要的格式。在这里笔者想让时间变化,于是写了一个让时间减一的方法,其实在这张表里时间无所谓,但是在文章开头笔者有提到,当需要添加一年的数据时,或者某一段时间的每一天都要添加时,就有必要定义这个方法了。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class UserTest {
public static void main(String[] args) {
try {
writeToFile();
//readFromFile();
} catch (IOException e) {
e.printStackTrace();
}

}

/**
* DOC 往文件里写入数据.
*
* @throws IOException
*/

private static void writeToFile() throws IOException {
String writerContent = "";// 要写入的文本
File file = new File("F:\\user.txt");// 要写入的文本文件
if (!file.exists()) {// 如果文件不存在,则创建该文件
file.createNewFile();
}
FileWriter writer = new FileWriter(file);// 获取该文件的输出流
for (int i = 0 ;i < 10; i ++ ) {
writerContent = "insert into `user` VALUES ("+"'"+(i + 1)+"'," +"yystrong"+i+"',"+"'111',"
+"'"+calcTime("", -(i+1))+"'"+"'0',"+"'0',"+"'"+calcTime("", -(i+1))+"'"
+ "\r\n";
writer.write(writerContent);// 写内容
}
writer.flush();// 清空缓冲区,立即将输出流里的内容写到文件里
writer.close();// 关闭输出流,施放资源
}

/**
*
* @param type 往前计算的类型(week、month、year,“”表示day
* @param count 往前计算的数量
* @return
*/

private static String calcTime(String type ,int count){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
if (type .equals("week")) {
//周
calendar.add(Calendar.WEEK_OF_YEAR, count);
}else if (type .equals("month")) {
//月
calendar.add(Calendar.MONTH, count);
}else if (type .equals("year")) {
//12个月
calendar.add(Calendar.MONTH, count);
}else {
//日
calendar.add(Calendar.DATE, count);
}
java.util.Date date = calendar.getTime();
return sdf.format(date);

}

}

执行之后,在f盘的根目录下就会创建一个user.txt的文件夹,里面有insert语句,然后在navicat里面选择ctrl+q打开执行框,复制进去之后选择运行,同样可以导入数据。
MySQl数据库-批量添加数据的两种方法