データベースに追加する前に、データをチェックする必要があります。アイテムの3つの列が一意である必要があります。私はHashMapper(HashMap Map)を作成して、データベースに格納されます。どのように10000行のデータをmysqlデータベースに追加する
HashMap<String, Object> eauMap = new HashMap<String, Object>();
データベースから選択操作があり、同じオブジェクトをマッピングする3つの異なるキーを作成します。
List<Object> existObjectList = Service.getAll();
HashMap<String, Object> Map = new HashMap<String, Object>();
for (Object existdata : existEauList) {
Map.put(existdata.getip1(), existdata);
Map.put(existdata.getip2(), existdata);
Map.put(existdata.getip3(), existdata);
}
そして私は、ヌルがある.IF Map.get(KEY3)、ループは、関数Map.get(KEY1)によってデータを追加するMap.get(KEY2)をザ各行を確認するために行いますデータをリストに入れて、マップにも入れます。
for loop:
Object data = (Object) Map.get(ip1);//ip1 is from the cell value
if (data == null) {
data=(Object)Map.get(ip2);
if(data==null){
data=(Object)Map.get(ip3);
if(data==null){
…………………………
Map.put(ip1,newdata);
Map.put(ip2,newdata);
Map.put(ip3,newdata);
}
}
}
次に、データベースにリストをコミットします。 データ行が300行しかない場合に機能します。今、私は10000、サーバーの内訳を追加します。効率を上げるにはどうすればいいですか? 要件はどの行が繰り返しであるかを指摘する必要があります。プロジェクトはspringmvc + spring + mybaitsで設定されます
これらのレコードを追加するには、prepared statementとaddBatchを使用しますか?通常、バッチ実行は、個々の挿入よりも優れたパフォーマンスを提供します。どのサーバーから問題が出るのですか? MySQLまたはあなたが実行しているJavaプロセス?サーバーが故障したときにエラーやスタックトレースがありますか?それは記憶から外れますか? –
私はこれらのrescords.Iを追加するためにmybaitsとaddBatchを使用してローカルのTomcatにプロジェクトをデプロイします。しかし、私がデータをインポートするとき、私は50秒間待っています、そして、myeclipseの故障と停止。 – ollamo