0
1,00,215行以上の挿入操作を実行すると、1,00,105行しか書き込まれません。SQLiteで予想以上に少ない行が書かれている
バッファまたはキャッシュメモリに問題はありますか?これは問題の場合、どのようにメモリのサイズを増やすのですか?
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import com.csvreader.CsvReader;
public class CSVStoreData
{
Connection con=null;
ResultSet rs=null;
Statement smt = null;
public void insertData(String path)
{
try
{
Class.forName("SQLite.JDBCDriver");
con = DriverManager.getConnection("jdbc:sqlite:/D:\\DB\\Mediation.db");
con.setAutoCommit(false);
smt = con.createStatement();
CsvReader filereader = new CsvReader(path,',');
filereader.readHeaders();
long startTime = System.currentTimeMillis();
while(filereader.readRecord())
{
String query="insert into CDRData values('"+filereader.get(0)+"','"+filereader.get(1)+"','"+filereader.get(2)+"','"+filereader.get(3)+"','"+filereader.get(4)+"','"+filereader.get(5)+"','"+filereader.get(6)+"','"+filereader.get(7)+"','"+filereader.get(8)+"','"+filereader.get(9)+"','"+filereader.get(10)+"','"+filereader.get(11)+"','"+filereader.get(12)+"','"+filereader.get(13)+"','"+filereader.get(14)+"','"+filereader.get(15)+"','"+filereader.get(16)+"','"+filereader.get(17)+"','"+filereader.get(18)+"','"+filereader.get(19)+"','"+filereader.get(20)+"','"+filereader.get(21)+"','"+filereader.get(22)+"')";
//System.out.println(filereader.get(0)+","+filereader.get(1)+","+filereader.get(2)+","+filereader.get(3)+","+filereader.get(4)+","+filereader.get(5)+","+filereader.get(6)+","+filereader.get(7)+","+filereader.get(8)+","+filereader.get(9)+","+filereader.get(10)+","+filereader.get(11)+","+filereader.get(12)+","+filereader.get(13)+","+filereader.get(14)+","+filereader.get(15)+","+filereader.get(16)+","+filereader.get(17)+","+filereader.get(18)+","+filereader.get(19)+","+filereader.get(20)+","+filereader.get(21)+","+filereader.get(22));
smt.executeUpdate(query);
// System.out.println("\n");
}
System.out.println("Record Inserted");
long finishTime = System.currentTimeMillis();
System.out.println("The time taken by insert query : "+(finishTime-startTime)+ " ms");
con.commit();
}
catch(Exception e)
{
System.out.println("Error ---- "+e);
}
}
/**
* @param args
*/
public static void main(String[] args) {
CSVStoreData csvdata = new CSVStoreData();
csvdata.insertData("D:\\CDRfile\\110527_160001.cdr");
}
}
あなたはエラーを投稿できますか? – Cris
エラーは発生しませんが、他のレコードがあるところでのみ1,00,105までのレコードを書き込みます –
BerkeleyDBではなくSQLiteを使用しているようです。 – Dmitri