gpt4 book ai didi

java - 将数组列表中的值插入数据库

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:00 24 4
gpt4 key购买 nike

我使用 addbatch()executebatch()ArrayList 中的值插入到数据库中。

但是当我运行代码时出现了这个错误消息:

Exception in thread "main" java.sql.BatchUpdateException: Duplicate entry '5' for key 'PRIMARY'  
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2020)
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1451)

这是数据:
1个R1
7个R1
2 B R1
3 C R1
4 B R1
8个R1
5个R1
9 C R1
6 C R1

这部分代码:

    public void insertDB(ArrayList<Eventlog> d) throws SQLException {  
String insert = "insert into eventlog values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(insert);
for (int k = 0; k < d.size()-1; k++) {
ps.setInt(1, d.get(k).getEvent_id()); // event id
ps.setString(3,d.get(k).getResources()); // resource
ps.setString(2,d.get(k).getActivity()); // activity
ps.addBatch();
}
ps.executeBatch();
}

最佳答案

代码看起来不错,但在运行此代码之前请确保您的表已被截断,因为它看起来或多或少是一组静态字段。

为了进一步澄清,主键 5 已经存在于您的数据库中,您需要在运行此代码之前将其删除。

关于java - 将数组列表中的值插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30939272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com