所以我的問題是:是否有可能逐行讀取文本文件行一個SQLite腳本?
是的。
如果是,請告訴我該怎麼做。
我們去那裏:
僞代碼算法:
- 打開該文件。
- 逐行閱讀並在數據庫中插入新行。
- 關閉資源並提交事務。
1)數據庫中按行打開文件
InputStream instream = new FileInputStream("myfilename.txt");
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
2)讀行,並插入新行
List<String> nameList = new ArrayList<>();
String line;
do {
line = buffreader.readLine();
if (line != null){
nameList.add(line);
}
} while (line != null);
現在你應該插入數據庫中的所有名稱:
storeNamesInDB(nameList);
凡
private void storeNamesInDB(nameList){
String sql = "INSERT INTO table (col1) VALUES (?)";
db.beginTransaction();
SQLiteStatement stmt = db.compileStatement(sql);
for (int i = 0; i < nameList.size(); i++) {
stmt.bindString(1, values.get(i));
stmt.execute();
stmt.clearBindings();
}
db.setTransactionSuccessful();
db.endTransaction();
}
3)關閉資源
不要忘記關閉資源:
instream.close();
inputreader.close();
免責聲明! 您不應該複製&粘貼此代碼。將每個var名稱和一些說明替換爲您的項目中有意義的人員。這只是一個想法。
在過去,我已經解決了與從文本文件創建SQL的(Python)腳本類似的情況下,將所有語句放在數據庫上的.sql文件中。不是直接回答你的問題,而是一個可能的解決方案。 – Kenneth
@Kenneth,我第二個議案。 SQLite是一個數據庫,而不是一種編程語言。 Python和PHP都有SQLite的內置庫。 OP應考慮使用通用語言連接數據庫,打開txt文件,並通過每行文本文件迭代遊標/準備好的查詢。而且,應用程序邏輯通常應該從數據庫中抽象出來。 – Parfait