【Android應用開發】-(22)Excel資料匯入Sqlite

來源:互聯網
上載者:User

    大家好,好久不寫部落格。今天分享下如何將Excel的資料匯入到Sqlite,最近做一個撥號程式,需要做來電提醒的功能,來電提醒有幾種實現方式,第一種方式是通過一些開發的介面,通過提交號碼進行查詢,在沒連網的情況下,這就不可能了,所以斷然放棄。最後通過在本地構建一個存取號碼段的資料庫來進行查詢。全國的電話號碼段,資料量高達25萬條。這些資料存在一個Excel表格中,這麼大的資料量,在SqlServer或者Oracle中都好辦,可Sqlite中可如何是好呢?肯定也有匯入功能,於是經過一番學習。原來很簡單,好了。說了一堆廢話,看操作吧。

一、準備匯入的環境設定

首先確定系統中是否有sqlite3,查看system/xlib目錄。

# ls /system/xbin/sqlite3

沒有的話請下載(包含兩個檔案,sqlite3,libncurses.so),將sqlite3拷貝到/system/xbin目錄,將libncurses.so拷貝到/system/lib目錄

到此,首先建立一個資料庫:

# Sqlite3 /mnt/sdcard/test.db

我們看到現在已經進入sqlite了。接下來,輸入.help可以看到所有命令及說明,剛興趣的可移步到本文後面的附錄中

二、準備資料來源

我這裡原本是一個Excel檔案,通過另存新檔的方式儲存為cvs檔案。這裡要特別注意!!使用記事本的方式開啟cvs檔案,將其另存新檔UTF-8,因為sqlite預設是UTF-8編碼的,如果編碼不一致,就亂碼了。

建立一個表:create table phones(ID INTEGER PRIMARY KEY,MobileNumber INTEGER(7), MobileArea VARCHAR(16),MobileType VARCHAR(15),AreaCode VARCHAR(4));

設定分割字串

# .separator ","

三、匯入資料

# .import /mnt/sdcard/all.csv phones

上述匯入資料的方式,android系統中必須要sqlite3命令。更簡單的方式是使用可視化資料庫工具sqlitebrowser匯入,簡單快捷。

匯入成功後進行相關操作,發現25萬條資料檢索毫無壓力,基本上是幾百毫秒就可以搞定,而且13M的資料庫壓縮後連只有2M多一點。....

四、附錄

sqlite> .help

.backup ?DB? FILE      Backup DB (default "main") to FILE

.bail ON|OFF           Stop after hitting an error.  Default OFF

.databases             List names and files of attached databases

.dump ?TABLE? ...      Dump the database in an SQL text format

                         If TABLE specified, only dump tables matching

                         LIKE pattern TABLE.

.echo ON|OFF           Turn command echo on or off

.exit                  Exit this program

.explain ?ON|OFF?      Turn output mode suitable for EXPLAIN on or off.

                         With no args, it turns EXPLAIN on.

.genfkey ?OPTIONS?     Options are:

                         --no-drop: Do not drop old fkey triggers.

                         --ignore-errors: Ignore tables with fkey errors

                         --exec: Execute generated SQL immediately

                       See file tool/genfkey.README in the source 

                       distribution for further information.

.header(s) ON|OFF      Turn display of headers on or off

.help                  Show this message

.import FILE TABLE     Import data from FILE into TABLE

.indices ?TABLE?       Show names of all indices

                         If TABLE specified, only show indices for tables

                         matching LIKE pattern TABLE.

.load FILE ?ENTRY?     Load an extension library

.log FILE|off          Turn logging on or off.  FILE can be stderr/stdout

.mode MODE ?TABLE?     Set output mode where MODE is one of:

                         csv      Comma-separated values

                         column   Left-aligned columns.  (See .width)

                         html     HTML <table> code

                         insert   SQL insert statements for TABLE

                         line     One value per line

                         list     Values delimited by .separator string

                         tabs     Tab-separated values

                         tcl      TCL list elements

.nullvalue STRING      Print STRING in place of NULL values

.output FILENAME       Send output to FILENAME

.output stdout         Send output to the screen

.prompt MAIN CONTINUE  Replace the standard prompts

.quit                  Exit this program

.read FILENAME         Execute SQL in FILENAME

.restore ?DB? FILE     Restore content of DB (default "main") from FILE

.schema ?TABLE?        Show the CREATE statements

                         If TABLE specified, only show tables matching

                         LIKE pattern TABLE.

.separator STRING      Change separator used by output mode and .import

.show                  Show the current values for various settings

.tables ?TABLE?        List names of tables

                         If TABLE specified, only list tables matching

                         LIKE pattern TABLE.

.timeout MS            Try opening locked tables for MS milliseconds

.width NUM1 NUM2 ...   Set column widths for "column" mode

.timer ON|OFF          Turn the CPU timer measurement on or off

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.