【发布时间】:2011-08-09 23:48:31
【问题描述】:
我正在尝试将数据从 csv 文件传输到我的应用程序的数据库中。 csv 文件不是从我的数据库生成的,所以有些字段我对传输不感兴趣。我该怎么做呢?
CSV:日期、参考、数量、类型、颜色、类别
DB:日期、数量、颜色、类别
【问题讨论】:
-
张贴 CSV 的形状和表格的形状。
标签: android
我正在尝试将数据从 csv 文件传输到我的应用程序的数据库中。 csv 文件不是从我的数据库生成的,所以有些字段我对传输不感兴趣。我该怎么做呢?
CSV:日期、参考、数量、类型、颜色、类别
DB:日期、数量、颜色、类别
【问题讨论】:
标签: android
试试这样的...
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(",");
【讨论】:
对于 Java 程序员,dbis 很有用。您无需单行代码即可实现。 请在下方查看。
【讨论】: