Time of Update: 2018-12-04
作為一個完成的應用程式,資料存放區操作是必不可少的。因此,Android系統一共提供了四種資料存放區方式。分別是:SharePreference、SQLite、Content Provider和File。由於Android系統中,資料基本都是私人的的,都是存放於“data/data/程式包名”目錄下,所以要實現資料共用,正確方式是使用Content
Time of Update: 2018-12-04
一、SQLite簡介在Android平台上,整合了一個嵌入式關係型資料庫—SQLite,SQLite3支援NULL、INTEGER、REAL(浮點數字)、TEXT(字串文本)和BLOB(二進位對象)資料類型,雖然它支援的類型雖然只有五種,但實際上sqlite3也接受varchar(n)、char(n)、decimal(p,s)
Time of Update: 2018-12-04
Cursor cur = getContentResolver().query(getIntent().getData(), PROJECTION, null, null, null);ArrayList<Map<String, Object>> coll = new ArrayList<Map<String, Object>>();Map<String, Object> item; cur.moveToFirst();
Time of Update: 2018-12-04
遍曆整個表,並把查詢結果輸出:int main(int argc, char **argv){ int rc, i, id, cid; char *name; char *sql; char *zErr; sqlite3 *db; sqlite3_stmt *stmt; sql="select id,name,cid from episodes"; //開啟資料庫 sqlite3_open("test.db", &db);
Time of Update: 2018-12-04
索引: 索引是一種在某種條件下的加速查詢的結構。一般的查詢都是順序掃描所有的行。如果表很大,查詢很頻繁,那麼一般的查詢就很臃腫。SQLite利用B-tree做索引。索引增加了資料庫的大小,在建立索引的情況下,最壞的情況就是表的內容翻倍,索引的維護也比較麻煩。修改表的時候,索引也是要修改的。 索引分為聚簇索引和非聚簇索引兩種,聚簇索引
Time of Update: 2018-12-04
8月份到現在一直在學習SQLite,準備讀源碼。但是現在搞不明白,我如何才能將SQLite學好,學精,學透徹?我為什麼要讀源碼?原因是什嗎?怎麼讀?本著什麼樣的原則?應該注意些什嗎?這個問題搞不清楚,接下來將會走的很難受。但是,昨天問一個學長,他簡單的說了下。總結了一下:熟悉基本的應用,重點學習其架構和內部機制;讀源碼,學習代碼的編寫規範方法等;在Linux下學習。暫時想到這些。。。。
Time of Update: 2018-12-04
事務的類型: 事務三種不同的類型,以不同的鎖狀態啟動事務。 在begin命令中指定事務類型:begin [ deferred | immediate | exclusive ] transaction
Time of Update: 2018-12-04
名稱和別名: f是foods的別名,t是foods_types的別名。別名使得表和自我串連變得可能。 這裡,是想找出season為4的食品在其他哪些season中提過
Time of Update: 2018-12-04
事務: 事務定義了一株sql命令的邊界,這組命令或者作為一個整體被全部執行,或者都不執行,稱為原子性原則。 事務的本質就是都執行,或者都不執行,而且是同時性的。 最具令人信服的是銀行轉賬過程。(詳情請百度orgoogle)。 事務的範圍: 事務的三個控制命令:begin 、 commit 、 rollback
Time of Update: 2018-12-04
關於設計與概念(對前面來轉載自MRDB前輩的文章)的補充:注意預查詢幾個比較重要的c API函數:sqlite3_prepare_v2( );sqlite3_step( ) ; sqlite_finalize( )。臨時儲存空間:
Time of Update: 2018-12-04
核心C API: 查詢封裝: 串連與中斷連線: 其實就是開啟資料庫。可以使用函數sqlite3_open_v2( )、 sqlite3_open( ) 、sqlite3_ open16( )。其中sqlite3_open_v2( )函數功能最強大,也是最新的函數,盡量使用這個函數。 開啟資料庫函式宣告: int sqlite3_open_v2(const char
Time of Update: 2018-12-04
準備查詢的優點: 不需要回調介面,編碼簡單、清晰;關聯了提供資訊的函數,可以獲得列的儲存類型、宣告類型、模式名稱、表名、資料庫名;sqlite3_exec( )的介面只是提供列的名稱;準備查詢提供一種文本外的擷取欄位、列值的方法,可以以C資料類型擷取;準備查詢能重新運行,可以重用已經編譯的SQL;準備查詢支援參數化的SQL語句 檢查變化: 可以從sqlite3_changes()獲得有多少記錄受到影響,提供最後一次執行的更新、插入、
Time of Update: 2018-12-04
(1)虛擬資料庫引擎(VBDE),包含:VBDE程式、程式計數器、結果欄位的名稱和類型、 參數的綁定值、 運行棧和固定數量的編號的內在單元。VBDE虛擬機器的的每條指令都由128個中的某一個作業碼 和 三個運算元構成。C api 可和VBDE 直接互動。要得到SQL的VBDE程式,可做入下操作; .mode column .header on .width x x x x x x …… .explain select * from
Time of Update: 2018-12-04
SQLite的體繫結構介紹: SQLite是由介面(Interface)、編譯器(Compiler)、虛擬機器(Virtual Machine )和後端程式(Back End)組成。 還有另兩種對體繫結構的圖示比較簡單: 介面(Interface) : 由SQLite c
Time of Update: 2018-12-04
1.將資料庫儲存到手機記憶體中 1.1操作方式比較簡單,我們只需要編寫一個類繼承SQLiteOpenHelper類來完成相關的操作public class SqliteHelper extends SQLiteOpenHelper {private final static String DATABLBASE_NAME = "message.db";private final static int DATABLBASE_VERSION = 1; //版本號碼private final
Time of Update: 2018-12-04
1、建立空的SQLite資料庫。//資料庫名的尾碼你可以直接指定,甚至沒有尾碼都可以//方法一:建立一個空sqlite資料庫,用IO的方式FileStream fs = File.Create(“c:\\test.db“);//方法二:用SQLiteConnectionSQLiteConnection.CreateFile(“c:\\test.db“);建立的資料庫是個0位元組的檔案。2、建立加密的空SQLite資料庫//建立一個密碼為password的空的sqlite資料庫SQLiteConn
Time of Update: 2018-12-04
前面的一二分別介紹了Apache,PHP和MySQL的安裝配置, 而phpMyAdmin的安裝, 其實更象一個php應用程式的安裝, 後面我準備安裝一個Wiki或者CMS系統.參見: Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(一)Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(二)四. phpMyAdmin
Time of Update: 2018-12-04
前言: 前面的Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(一)中主要介紹了Leopard內建的Apache和PHP的設定, 這裡要介紹的是MySQL和phpMyAdmin的安裝配置了, 因為這些不是Leopard內建的軟體(Leopard Server內建了MySQL), 所以會出現一些問題, 我會在這裡給出主要會碰到的問題的解決方案.三. MySQL 如果你啟動並執行是OS X Leopard
Time of Update: 2018-12-04
使用SQLiteDatabase的beginTransaction()方法可以開啟一個事務,程式執行到endTransaction() 方法時會檢查事務的標誌是否為成功,如果程式執行到endTransaction()之前調用了setTransactionSuccessful() 方法設定事務的標誌為成功則提交事務,如果沒有調用setTransactionSuccessful()
Time of Update: 2018-12-04
1.DataBaseHelper類,用於建立和更新資料庫表package com.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;import