我正在尝试将数据从csv文件传输到我的应用程序上的数据库。 csv文件不是从我的数据库生成的,因此有些字段我不想转移。我该怎么做呢?
CSV:日期,参考,数量,类型,颜色,类别
DB:日期,数量,颜色,类别
答案 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非常有用。您可以在没有单行代码的情况下实现。 请在下面查看。