将csv导入数据库
问题描述:
我试图将数据从csv文件传输到我的应用程序上的数据库。 csv文件不是从我的数据库生成的,所以有些字段我不感兴趣传输。我会怎么做呢?将csv导入数据库
CSV:日期,参考文献,数量,类型,颜色,类别
DB:日期,数量,颜色,类别
答
尝试这样的事情......
FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
String data = "";
String tableName ="MY_TABLE";
String columns = "date,quantity,color,category";
String InsertString1 = "INSERT INTO " + tableName + " (" + columns + ") values(";
String InsertString2 = ");";
db.beginTransaction();
while ((data = br.readLine()) != null) {
StringBuilder sb = new StringBuilder(InsertString1);
String[] sarray = data.split(",");
sb.append("'" + sarray[0] + "',");
sb.append(sarray[2] + "',");
sb.append(sarray[4] + "',");
sb.append(sarray[5] + "'");
sb.append(InsertString2);
db.execSQL(sb.toString());
}
db.setTransactionSuccessful();
db.endTransaction();
答
若要打包静态数据,使用任何UI或csv-import command在开发时,船舶此sqlite db file into asset folder,然后,您可以copy the entire sqlite file onto the device when your application is first run.
在运行时插入了大量的数据,bulk insert using transactions是最好的性能
您还可以使用BufferReader
BufferedReader in = new BufferedReader(csvfilepath);
String reader = "";
while ((reader = in.readLine()) != null){
String[] RowData = reader.split(",");
发布CSV的形状和表格的形状。 – 2011-04-21 03:18:05