将csv导入数据库

时间:2011-04-21 03:11:50

标签: android

我正在尝试将数据从csv文件传输到我的应用程序上的数据库。 csv文件不是从我的数据库生成的,因此有些字段我不想转移。我该怎么做呢?

CSV:日期,参考,数量,类型,颜色,类别
DB:日期,数量,颜色,类别

3 个答案:

答案 0 :(得分:2)

尝试这样的事情......

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();

答案 1 :(得分:1)

要打包静态数据,请在开发时使用任何用户界面或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(",");

答案 2 :(得分:0)

对于Java程序员,dbis非常有用。您可以在没有单行代码的情况下实现。 请在下面查看。

https://dbisweb.wordpress.com/