サイクリングに愚かではありません!完璧なソリューションのJPA一括挿入の問題

はじめに:簡単な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)

ここに画像を挿入説明
正常に挿入

ここではステッカーの重要な部分であり、同様の考えを理解して

公開された25元の記事 ウォン称賛22 ビュー3642

おすすめ

転載: blog.csdn.net/weixin_42443419/article/details/103602987