<div><div style="line-height: normal; font-size: medium; "><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">久保さんへ</font></span></div><div style="line-height: normal; font-size: medium; "><span class="Apple-style-span" style="font-size: medium; "><font style="font-size: 14px; line-height: 150%; ">iafandaです</font></span></div><div style="line-height: normal; font-size: medium; "><span class="Apple-style-span" style="font-size: medium; "><br></span></div><div style="line-height: normal; font-size: medium; "><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">いつもお世話になっております。</font></span></div><div style="line-height: normal; font-size: medium; "><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">質問の説明は悪くてすいません。</font></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="line-height: 21px;"><br></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="font-size: 14px; "><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; 「テーブルはシステムで自動生成」</font></div></span><span class="Apple-style-span" style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; つまり、システムの稼働中に create table を実行して</font></span></div><div><span class="Apple-style-span" style="font-size: 14px; "><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; テーブルが作成される、という意味ですね?</font></div></span><span class="Apple-style-span" style="line-height: 21px; font-size: medium; "><font style="font-size: 14px; line-height: 150%; ">そうです。</font></span></div><div><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="line-height: 21px;"><br></span></font></div><div><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; 「事前にテーブル操作用クラスが用意できないです。」</font></div><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; つまり、DBFluteの自動生成時にはテーブルはまだ存在しないので、</font></div><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; Behavior や Entity をDBFluteで自動生成できない、という意味ですね?</font></div><div style="font-size: 14px; line-height: 21px; "><span class="Apple-style-span" style="line-height: normal; "><div><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">そうです。</font></span></font></div><div><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="line-height: 21px; "><br></span></font></div></span></div></div><div style="line-height: normal; font-size: medium; "><span class="Apple-style-span" style="font-size: 14px; "><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; ということで、Behavior の batchInsert() が利用できないので、</font></div><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; 外だしSQL(outsideSql) でそれと同じような速度向上のための</font></div><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; 機能がないかどうか?ということですね。</font></div></span></div><div style="line-height: normal; font-size: medium; "><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">そうです。</font></span></div><div style="line-height: normal; font-size: medium; "><span class="Apple-style-span" style="line-height: 21px; "><br></span></div><div><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; システムで自動生成の構造は固定的なのでしょうか?</font></div><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; もしそうであれば、DBFluteの自動生成時にダミーで</font></div><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; そのテーブルを用意しておいて、システムでテーブルが</font></div><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; 作成されてから、Behavior で batchInsert() するというのも</font></div><div style="font-size: 14px; line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">&gt; できるかもしれません。</font></div><div><font style="font-size: 14px; line-height: 150%; ">おっしゃるとおり、現在はダミーテーブル(autotable)を用意して、</font></div></div><div><font style="font-size: 14px; line-height: 150%; ">新しいテーブルは以下のように作ります</font><font style="font-size: 14px; line-height: 150%; ">autotable1、</font><font style="font-size: 14px; line-height: 150%; ">autotable2......</font><font style="font-size: 14px; line-height: 150%; ">autotableN。</font></div><div><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">システムで自動生成の構造は固定です。</font></span></div><div><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">外だしSQL(outsideSql):</font></span></div><div><div><font style="font-size: 14px; line-height: 150%; ">&nbsp;CREATE TABLE IF NOT EXISTS /*$pmb.tablename*/autotable</font></div><div><font style="font-size: 14px; line-height: 150%; ">&nbsp;(</font></div><div><font style="font-size: 14px; line-height: 150%; ">&nbsp; &nbsp;`id` varchar(10) NOT NULL,</font></div><div><font style="font-size: 14px; line-height: 150%; ">&nbsp; &nbsp;`name` varchar(10) NOT NULL,</font></div><div><font style="font-size: 14px; line-height: 150%; ">&nbsp;) ENGINE=InnoDB DEFAULT CHARSET=utf8</font></div></div><div><br></div><div><font style="font-size: 14px; line-height: 150%; ">/*$pmb.tablename*/に設定する値は</font><font style="font-size: 14px; line-height: 150%; ">autotable1または</font><font style="font-size: 14px; line-height: 150%; ">autotable2......</font></div><div><br></div><div><font style="font-size: 14px; line-height: 150%; ">ここまでは問題ないです。</font></div><div><br></div><div><br></div><div><font style="font-size: 14px; line-height: 150%; ">csvデータ投入時以下の</font><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">外だしSQL(outsideSql)となります</font></span><font style="font-size: 14px; line-height: 150%; ">、データ量は10万から100万までです。</font></div><div><font style="font-size: 14px; line-height: 150%; ">&nbsp;INSERT INTO &nbsp;/*$pmb.tablename*/autotable </font><span class="Apple-style-span"><font style="font-size: 14px; line-height: 150%; ">&nbsp;(</font></span><font style="font-size: 14px; line-height: 150%; ">id</font><span class="Apple-style-span"><font style="font-size: 14px; line-height: 150%; ">,</font></span><font style="font-size: 14px; line-height: 150%; ">name</font><span class="Apple-style-span"><font style="font-size: 14px; line-height: 150%; ">) </font></span><span class="Apple-style-span"><font style="font-size: 14px; line-height: 150%; ">&nbsp;VALUES(/*$pmb.</font></span><font style="font-size: 14px; line-height: 150%; ">id</font><span class="Apple-style-span"><font style="font-size: 14px; line-height: 150%; ">*/1234567890</font></span><span class="Apple-style-span"><font style="font-size: 14px; line-height: 150%; ">&nbsp;,/*$pmb.</font></span><font style="font-size: 14px; line-height: 150%; ">name</font><span class="Apple-style-span"><font style="font-size: 14px; line-height: 150%; ">*/'1234567890'</font></span><font style="font-size: 14px; line-height: 150%; ">)</font></div><div><br></div><div><div><font style="font-size: 14px; line-height: 150%; ">「JDBCのバッチ更新で、複数の更新SQL(DML)を一度にデータベースに送って処理させる機能で、</font></div><div><font style="font-size: 14px; line-height: 150%; ">&nbsp;1個ずつSQLを発行するよりも処理が速いという利点があります。」</font></div></div><div><br></div><div><font style="font-size: 14px; line-height: 150%; ">そこで</font><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">速度向上のための</font></span><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">機能がないですか?</font></span></div><div><span class="Apple-style-span" style="line-height: 21px; "><br></span></div><div><span class="Apple-style-span" style="line-height: 21px; ">教えてください。</span></div><div><span class="Apple-style-span" style="line-height: 21px;"><br></span></div><div><div><div><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 21px; ">&lt; 処理速度を上げたいのであれば、outsideSql で insert 文 (一レコード分) を書いて、</font></span></font></div><div><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 21px; ">&lt; 「batchInsertみたいな」ことを実行しても、あまり速度は変わらないと思います。</font></span></font></div><div><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 21px; ">&lt; (もともと batchInsert 自体がDBFluteの中では速度重視の機能です)</font></span></font></div></div><div><span class="Apple-style-span" style="line-height: 21px; ">outsideSql で insert 文 (一レコード分) を書いて、毎回sql文内容が変わるから、</span><span class="Apple-style-span" style="line-height: 21px; ">あまり速度は変わらないということですか?</span></div></div><div><span class="Apple-style-span" style="line-height: 21px;"><br></span></div><div><span class="Apple-style-span" style="line-height: 21px; "><font style="font-size: 14px; line-height: 150%; ">よろしくお願いします。</font></span></div><div style="font-size: medium; "><span class="Apple-style-span" style="line-height: 21px;"><br></span></div></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; 久保(jflute)です。</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt;&nbsp;</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; &gt;&gt; テーブルはシステムで自動生成(create table)したので、事前にテーブル操作用クラスが用意できないです。</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt;&nbsp;</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; iafandaさんの言っていることが理解できたかもしれません。</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt;&nbsp;</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; 「テーブルはシステムで自動生成」</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; つまり、システムの稼働中に create table を実行して</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; テーブルが作成される、という意味ですね?</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt;&nbsp;</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; 「事前にテーブル操作用クラスが用意できないです。」</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; つまり、DBFluteの自動生成時にはテーブルはまだ存在しないので、</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; Behavior や Entity をDBFluteで自動生成できない、という意味ですね?</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt;&nbsp;</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; ということで、Behavior の batchInsert() が利用できないので、</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; 外だしSQL(outsideSql) でそれと同じような速度向上のための</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; 機能がないかどうか?ということですね。</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt;&nbsp;</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; すいません、先ほどのメールの時点では、</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; これがよく理解できていませんでした。</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt;&nbsp;</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; システムで自動生成の構造は固定的なのでしょうか?</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; もしそうであれば、DBFluteの自動生成時にダミーで</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; そのテーブルを用意しておいて、システムでテーブルが</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; 作成されてから、Behavior で batchInsert() するというのも</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; できるかもしれません。</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt;&nbsp;</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; もし、システムで自動生成の構造が変動的なのであれば、</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; どのみち外だしSQL(outsideSql)でもinsert文を書くのは</font></div><div style="font-size: 14px; line-height: 150%; "><font style="font-size: 14px; line-height: 150%; ">&gt; 難しいような気がします。</font></div>