Java向mysql批量存储数据_java批量插入数据进数据库中
时间: 2024-02-24 20:58:28 浏览: 143
想要Java向MySQL批量存储数据,可以通过以下步骤实现:
1. 创建MySQL数据库和表,确保表中的字段与Java中数据对象的属性一一对应。
2. 在Java中,使用JDBC连接MySQL数据库。
3. 使用PreparedStatement对象预编译SQL语句,例如:
```
String sql = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
```
4. 创建一个List,将需要插入的数据对象添加到List中。
5. 循环遍历List,对于每个数据对象,使用PreparedStatement设置参数,最后将PreparedStatement添加到批处理中,例如:
```
for (DataObject data : dataList) {
statement.setString(1, data.getProperty1());
statement.setInt(2, data.getProperty2());
statement.setDouble(3, data.getProperty3());
statement.addBatch();
}
```
6. 执行批处理,将数据批量插入到MySQL中,例如:
```
int[] result = statement.executeBatch();
```
完整的Java代码示例:
```
String sql = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
List<DataObject> dataList = getDataList();
for (DataObject data : dataList) {
statement.setString(1, data.getProperty1());
statement.setInt(2, data.getProperty2());
statement.setDouble(3, data.getProperty3());
statement.addBatch();
}
int[] result = statement.executeBatch();
```
注意事项:
- 执行批处理前,需要关闭自动提交模式,即使用`connection.setAutoCommit(false)`。
- 执行完批处理后,需要手动提交事务,即使用`connection.commit()`。
- 执行批处理前,建议先关闭索引,执行完成后再重新开启索引,可以提高插入效率。
阅读全文