作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试实现一种代码,该代码可以从 MySQL 中的一个表中检索用户 ID 的数组列表,然后使用检索到的值将批量插入到同一 MySQL 数据库中的另一个表中。批量插入的大小或长度必须与检索到的用户 ID 的数组列表相同。
我尝试使用模型类检索用户 ID,然后使用 for 循环将其他数据(包括各种用户 ID)插入数据库中。
SubscribersServlet.java
public static void bulkNotify(List<Notify> notifyList) {
String sql = "insert into attnotif (attndid,sender,title,message,urgency,artistid) values (?,?,?,?,?,?)";
try (Connection connection = DBConnect.getConnection()) {
connection.setAutoCommit(false);
try {
try (PreparedStatement ps = connection.prepareStatement(sql)) {
for (Notify notify : notifyList) {
ps.setInt(1, notify.getuserid());
ps.setString(2, notify.getSender());
ps.setString(3, notify.getNotifytitle());
ps.setString(4, notify.getNotifymessage());
ps.setString(5, notify.getNotifyurgency());
ps.setInt(6, notify.getArtistid());
ps.addBatch();
}
ps.executeBatch();
}
connection.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}catch (SQLException e) {
e.printStackTrace();
}
}
我希望能够将标题、消息、紧急程度、artistid(全部具有相同的值)和 userid(不同的值)插入到数据库中的多行中。
最佳答案
您的 for 循环中必须有一个计数器,在该计数器达到限制后,您应该调用executeBatch() 方法。
for (Notify notify : notifyList) {
/**
* do sth
* */
i++;
if (i % 1000 == 0 || i == notifyList.size()) {
ps.executeBatch(); // pile up 1000 items then load
}
}
关于java - 如何在Java中使用不同的用户ID将多行插入MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56120147/
我是一名优秀的程序员,十分优秀!