はじめに:簡単なCRUDでJPAは確かにほとんどの時間を、私たちを救っているが、複雑な状況の顔は、それが彼らの理解を超えて、最近、バルクインサートのケースに遭遇している、SAVEALL方法を提供するJPAながら、しかし、基礎となるか、あなたが頻繁に相互に作用し、必然的にパフォーマンスに影響するデータベースと、情報も満足のいく結果の多くにアクセスでき、最終的には自分自身のプログラムを思い付いに大量のデータが発生した場合、ループのために、保存し
た複数の値の挿入のMySQLサポート、私の考えは戦うし、元のexcuteメソッドSpringJdbcTemplate直接使い捨てのインサートを使用してSQL SQLを実行し、ソースを添付することですので、
StringBuilder insert = new StringBuilder("INSERT INTO `user_message` (`created_at`, `is_deleted`, `content`,`send_tm`,`status`,`type`,`user_id`) VALUES ");
for (int i = 0; i < users.size(); i++) {
insert.append("(").append("NOW()").append(",0,").append("'").append(content).append("'").append(",").append("'").append(format).append("'").append(",0,").append(type).append(",").append(users.get(i)).append(")");
if (i < users.size() - 1) {
insert.append(",");
}
}
log.info("SQL语句:{}", JSON.toJSON(insert));
try {
jdbcTemplate.execute(insert.toString());
return true;
} catch (Exception e) {
throw new BizException("sql解析错误");
}
SQL文を綴ります
INSERT INTO `user_message` (`created_at`, `is_deleted`, `content`,`send_tm`,`status`,`type`,`user_id`) VALUES (NOW(),0,'fdsfadsfdaf','2019-12-18',0,8,1),(NOW(),0,'fdsfadsfdaf','2019-12-18',0,8,2),(NOW(),0,'fdsfadsfdaf','2019-12-18',0,8,3),(NOW(),0,'fdsfadsfdaf','2019-12-18',0,8,4),(NOW(),0,'fdsfadsfdaf','2019-12-18',0,8,5)
正常に挿入
ここではステッカーの重要な部分であり、同様の考えを理解して