作者givemepass (〆)
看板AndroidDev
標題Re: [閒聊] Eclipse與SQLite的關係之疑問
時間Thu Dec 22 19:26:00 2011
※ 引述《sweet00914 (別理我)》之銘言:
: 請問各位大大
: 當在開發一個應用程式(需存取資料庫)時,且若已經存在一資料庫(*.txt,*.xls..等)
: 請問我是否應該使用SQLite DataBase Browser(或其他工具SQLiteStudio),
: 先將*.txt或*.xls轉換成SQLite的格式呢?
: 還是使用模擬器命命列sqlite3的工具去create a new database呢?
: ps:前提-已存在的資料庫(*.txt)的資料是固定的,只用來讀取而已。
: 謝謝大家~0.0
剛研究了一下 需要的工具 phpmyadmin
如果沒有的人 就去這邊下載
http://www.phpmyadmin.net/home_page/downloads.php
安裝完成以後 就打開瀏覽器
在網址列上面打上localhost 就會進入phpmyadmin
然後輸入你的帳號密碼(安裝過程會叫你設定)
你就會看很友善的資料庫處理圖形介面
這時候你只需要選擇一個資料 沒有的話建立一個
建立好了 就點進你剛建好資料庫裡面
然後右邊會有一個"載入" 點它
這邊我很好奇哪一個資料庫叫做txt(這個該不會是.sql)或者xls(這應該是excel吧?)
可能我看太少>"< 沒看過這種類型的資料庫
然後選擇你要載入的資料庫檔案 以及格式
然後你就會看到你剛剛建立的資料庫已經載入你剛剛匯入的資料庫了
這時候!
你就選擇任何一個資料表格 選擇輸出
然後你就會看到它要你選擇是輸出什麼格式?
這時候你就選SQL, 然後SQL選項就將
"新增 AUTO_INCREMENT數值" 拿掉
下面有一個下載儲存不要打勾
按下"執行"
你就看到他會列出一排SQL指令
接著 你把CREATE TABLE ... 這一大串 複製貼上到記事本
然後下面還有一大串的 INSERT ... 一起貼過去
利用記事本的取代功能 將 "`" 改成 "'"
接著 打開cmd 鍵入 adb shell
(這邊你必須到放android sdk的目錄之下有一個tool-platform)
下面有一個adb.exe
或者你設定環境變數也可以
然後輸入 cd /data/data/xxx.xxx.xxx/
xxx.xxx.xxx是你的package name
下ls
你可能就會看到
databases
lib
shared_prefs
這三個資料夾
databases如果你之前已經有建立資料庫了 就會看到這個資料庫存在
shared_prefs如果你之前有用sharedPreference的話就會看到這個
然後進入databases裡面
打ls 如果有看到資料庫xxx 就表示你之前已經建立好資料庫xxx
如果沒有看到沒關係 一樣直接下 等下你建立表格的時候
這個資料庫 就會自動建立了
下 sqlite3 xxx
就會看到這一長串的資訊
SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
然後就可以開始下指令了
把剛剛的記事本打開 複製CREATE TABLE這一段
然後直接貼上
然後下 .table 你就會看到 表格已經被建立了
接下來一口氣把那一堆INSERT .... 一次複製貼上 用力的按下enter
你就會發現 一個表格成功的複製到android底下了
同理 將其他的表格一個一個 加進去
我這個算是笨做法 可是我不知道還有沒有其他方便的工具
可以提供一鍵就import進去
我有看到.import的指令 但是我試著幾次都不成功
可能我哪個步驟有錯誤吧!
以上就是我的解法
希望有強者能夠提供更簡單的做法 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.221.115.4
→ KeySabre:好像phpmyadmin只是用來幫你寫SQL XDD 主要是insert很多 12/22 20:37
→ KeySabre:在App裡比較常看到用ContentProvider.. 主要還是看你方便 12/22 20:40
→ givemepass:請問樓上的大大 可是示範用ContentProvider解這題嗎 12/22 22:00
→ KeySabre:原PO水球問過我 說筆數超過65536... 12/22 22:37
→ KeySabre:但沒說是第一次還是每一次筆數都這麼多 12/22 22:38
→ KeySabre:我想第一次可以用SQLiteDatabase跟File去做 一定很久 12/22 22:41
→ KeySabre:但應該是只有第一次需要這麼多筆 之後只要部份更新 12/22 22:42
這邊我要給你一個讚
的確 這個方法我倒是沒想過 而且比在Console上操作容易多了
這樣一來下面的步驟 我也知道怎麼做了 感謝指導:)
→ KeySabre:原po說已存在的txt應該是csv 看是不是逗號或其他符號分隔 12/22 23:03
※ 編輯: givemepass 來自: 61.64.170.139 (12/22 23:45)