java怎么批量插入[{ "id": 1,"bill_list": [ {"name": "附件1"}]}]该数据
时间: 2024-12-10 14:18:52 浏览: 10
在Java中批量插入包含复杂数据结构(如嵌套列表)的数据,可以使用多种方法。以下是一个使用JDBC和JSON库的示例,展示如何将包含嵌套列表的数据批量插入到数据库中。
首先,确保你已经添加了必要的依赖,例如`json-simple`库用于解析JSON数据。
```xml
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
```
然后,编写Java代码来执行批量插入操作:
```java
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.List;
public class BatchInsertExample {
public static void main(String[] args) {
String jsonData = "[{\"id\": 1, \"bill_list\": [{\"name\": \"附件1\"}]}]";
JSONParser parser = new JSONParser();
try {
// 解析JSON数据
JSONArray jsonArray = (JSONArray) parser.parse(jsonData);
// 数据库连接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");
connection.setAutoCommit(false);
// 准备SQL语句
String sql = "INSERT INTO your_table (id, name) VALUES (?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
// 遍历JSON数组并执行批量插入
for (Object obj : jsonArray) {
JSONObject jsonObject = (JSONObject) obj;
Long id = (Long) jsonObject.get("id");
JSONArray billList = (JSONArray) jsonObject.get("bill_list");
for (Object billObj : billList) {
JSONObject bill = (JSONObject) billObj;
String name = (String) bill.get("name");
statement.setLong(1, id);
statement.setString(2, name);
statement.addBatch();
}
}
// 执行批量插入
statement.executeBatch();
connection.commit();
connection.close();
System.out.println("数据批量插入成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们首先解析JSON数据,然后建立数据库连接并准备SQL语句。接着,我们遍历JSON数组,将数据插入到数据库中,并执行批量插入操作。
阅读全文