【发布时间】:2019-04-25 06:47:04
【问题描述】:
我有以下数据库:
CREATE TABLE b (
name VARCHAR(255) NOT NULL,
text MEDIUMTEXT NOT NULL,
PRIMARY KEY (NAME)
);
我有以下代码:
public void saveBlocks(Map<String, Block> blocks) throws SQLException{
String userInsertQuery = "Insert INTO b (name, text) VALUES (?, ?)";
preparedStatement = connect.prepareStatement(userInsertQuery);
int batchCounter = 0;
for(Block block : blocks.values()){
preparedStatement.setString(1,block.getId());
preparedStatement.setString(2,block.getText());
preparedStatement.addBatch();
batchCounter++;
if(batchCounter%200 == 0) {
preparedStatement.executeBatch();
}
}
preparedStatement.executeBatch();
}
但它不会将任何内容写入数据库。 我对另一个表有几乎相同的代码,它在那里工作没有问题。唯一的区别是我插入的数量(在工作情况下:超过 100 万,在非工作情况下:大约 70)
我找不到解决方案,而且我没有想法。
我尝试了什么: - connect.commit() => 因为我有 autocommit true 没有变化。 (还是我用错了?) - 我的密钥没有自动增量,所以没有问题。
你有什么想法吗?
【问题讨论】:
标签: java mysql prepared-statement