- 背景介绍
Java语言非常流行,并且广泛使用于各种应用程序开发中,其中Java处理Excel文件并将数据导入MySQL数据库是非常常见的场景。在这里我们将会介绍Java excel数据导入MySQL的实现方式,并提供一些示例演示。
- 准备工作
在开始之前,我们需要进行一些准备工作,其中需要的工具有:
- IDEA开发工具
- Maven构建工具
- Excel解析工具:POI
- 数据库连接池:Druid
-
MySQL数据库
-
Excel文件读取
使用POI这个Java的Excel解析库可以帮助我们读取Excel文件中的数据。下面是使用POI读取Excel文件的步骤:
InputStream is = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(is);
Sheet sheet = wb.getSheetAt(0);
Iterator<Row> rows = sheet.rowIterator();
while (rows.hasNext()) {
Row row = rows.next();
String value1 = row.getCell(0).getStringCellValue();
String value2 = row.getCell(1).getStringCellValue();
// ...
}
is.close();
- 数据库连接池
使用Druid这个Java的数据库连接池可以帮助我们实现与数据库的连接池。下面是使用Druid连接池的步骤:
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUsername("root");
dataSource.setPassword("123456");
dataSource.setUrl("jdbc:mysql://localhost:3306/test");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
Connection conn = dataSource.getConnection();
- 数据导入MySQL
使用以上两个工具,我们就可以将Excel文件中的数据导入到MySQL数据库中。下面是将数据导入MySQL的步骤:
PreparedStatement pst = conn.prepareStatement("insert into t_table (column1, column2) values (?, ?)");
pst.setString(1, value1);
pst.setString(2, value2);
// ...
pst.execute();
- 示例演示
下面我们将展示两个示例演示Java excel数据导入MySQL的实现方法:
- 示例一:将Excel文件中的数据导入到MySQL数据库。
// 读取Excel文件
InputStream is = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(is);
Sheet sheet = wb.getSheetAt(0);
Iterator<Row> rows = sheet.rowIterator();
// 连接数据库
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUsername("root");
dataSource.setPassword("123456");
dataSource.setUrl("jdbc:mysql://localhost:3306/test");
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
Connection conn = dataSource.getConnection();
// 导入数据
PreparedStatement pst = conn.prepareStatement("insert into t_table (column1, column2) values (?, ?)");
while (rows.hasNext()) {
Row row = rows.next();
String value1 = row.getCell(0).getStringCellValue();
String value2 = row.getCell(1).getStringCellValue();
pst.setString(1, value1);
pst.setString(2, value2);
pst.execute();
}
// 关闭资源
is.close();
pst.close();
conn.close();
- 示例二:使用Spring Batch技术将Excel文件中的数据批量导入到MySQL数据库。
@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
@Autowired
private JobBuilderFactory jobs;
@Autowired
private StepBuilderFactory steps;
@Autowired
private DataSource dataSource;
@Bean
public JdbcCursorItemReader<MyModel> myModelReader() {
JdbcCursorItemReader<MyModel> reader = new JdbcCursorItemReader<>();
reader.setDataSource(dataSource);
reader.setSql("select * from t_table");
reader.setRowMapper(new BeanPropertyRowMapper<>(MyModel.class));
return reader;
}
@Bean
public MyModelItemProcessor myModelProcessor() {
return new MyModelItemProcessor();
}
@Bean
public ItemWriter<MyModel> myModelWriter() {
JdbcBatchItemWriter<MyModel> writer = new JdbcBatchItemWriter<>();
writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<>());
writer.setSql("insert into t_table (column1, column2) values (:column1, :column2)");
writer.setDataSource(dataSource);
return writer;
}
@Bean
public Step step1() {
return steps.get("step1")
.<MyModel, MyModel>chunk(10)
.reader(myModelReader())
.processor(myModelProcessor())
.writer(myModelWriter())
.build();
}
@Bean
public Job importJob() {
return jobs.get("importJob")
.incrementer(new RunIdIncrementer())
.flow(step1())
.end()
.build();
}
}
以上就是Java excel数据导入MySQL的实现示例详解,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java excel数据导入mysql的实现示例详解 - Python技术站