1)下載sqlite jdbc驅動http://www.xerial.org/maven/repository/artifact/org/xerial/sqlite-jdbc/
2)將下載的驅動加入eclipse項目的built path中
3)示例代碼:
2. C#連接sqlite
2.1 使用SQLITE.NET
SQLite.NET也是一個數據訪問組件,其中的System.Data.SQLite 就好像是.NET自帶的System.Data.SqlClient一樣。里面包含了connection、command等數據訪問的常用對象,只是他們前面都有一個前綴sqlite。
1)下載System.Data.SQLite,下載地址http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki
2) 通過Add References引用SQLite ADO .NET安裝目錄的bin目錄下的System.Data.SQLite.DLL。
3)創建表、讀取數據等和Access或MS SQL沒多大區別
2.2使用原生態的ADO.NET訪問SQLite
SQLite.NET數據庫連接字符串ConnectionString格式:
Basic(基本的)
Data Source=filename;Version=3;
Using UTF16(使用UTF16編碼)
Data Source=filename;Version=3;UseUTF16Encoding=True;
With password(帶密碼的)
Data Source=filename;Version=3;Password=myPassword;
Using the pre 3.3x database format(使用3.3x前數據庫格式)
Data Source=filename;Version=3;Legacy Format=True;
Read only connection(只讀連接)
Data Source=filename;Version=3;Read Only=True;
With connection pooling(設置連接池)
Data Source=filename;Version=3;Pooling=False;Max Pool Size=100;
Using DateTime.Ticks as datetime format()
Data Source=filename;Version=3;DateTimeFormat=Ticks;
The default value is ISO8601 which activates the use of the ISO8601 datetime format
Store GUID as text(把Guid作為文本存儲,默認是Binary)
Data Source=filename;Version=3;BinaryGUID=False;
如果把Guid作為文本存儲需要更多的存儲空間
Specify cache size(指定Cache大小)
Data Source=filename;Version=3;Cache Size=2000;
Cache Size 單位是字節
Specify page size(指定頁大小)
Data Source=filename;Version=3;Page Size=1024;
Page Size 單位是字節
Disable enlistment in distributed transactions
Data Source=filename;Version=3;Enlist=N;
Disable create database behaviour(禁用創建數據庫行為)
Data Source=filename;Version=3;FailIfMissing=True;
默認情況下,如果數據庫文件不存在,會自動創建一個新的,使用這個參數,將不會創建,而是拋出異常信息
Limit the size of database(限制數據庫大小)
Data Source=filename;Version=3;Max Page Count=5000;
The Max Page Count is measured in pages. This parameter limits the maximum number of pages of the database.
Disable the Journal File (禁用日志回滾)
Data Source=filename;Version=3;Journal Mode=Off;
This one disables the rollback journal entirely.
Persist the Journal File(持久)
Data Source=filename;Version=3;Journal Mode=Persist;
This one blanks and leaves the journal file on disk after a commit. Default behaviour is to delete the Journal File after each commit.
Controling file flushing
Data Source=filename;Version=3;Synchronous=Full;
Full specifies a full flush to take action after each write. Normal is the default value. Off means that the underlying OS flushes I/O's.
Sqlite使用技巧
1 .Sqlite判斷數據表是否存在
SELECT COUNT(*) as CNT FROM sqlite_master where type='table' and name='DBInfo' //其中DBInfo為需要判斷的表名。注意大小寫敏感!
2. SQLite一條SQL語句插入多條記錄
INSERT INTO TABLE(col1, col2) SELECT val11, val12 UNION ALL SELECT val21, val22 ;
這樣的寫法是屬于復合SQL語句,表示先把兩個SELECT的結果集進行無刪減的聯合,再把聯合結果插入到TABLE中。
3. sqlite事務
是以文件的形式存在磁盤中,每次訪問時都要打開一次文件,如果對數據進行大量操作時,會很慢~
解決辦法是用事務的形式提交:因為我們開始事務后,進行大量操作的語句都保存在內存中,當提交時才全部寫入數據庫,此時,數據庫文件也就只用打開一次。
sql語句:
begin;
INSERT INTO "table" VALUES ('a', 'b', 'c');
INSERT INTO "table" VALUES ('a', 'b', 'c');
INSERT INTO "table" VALUES ('a', 'b', 'c');
commit;
4. SQLite自增ID字段使用方法為 INTEGER PRIMARY KEY AUTOINCREMENT
5. 分頁查詢顯示
類似MySQL數據庫 ,是利用mySQL的LIMIT函數,LIMIT [offset,] rows從數據庫表中M條記錄開始檢索N條記錄的語句為:
SELECT * FROM 表名稱 LIMIT M,N
例如從表Sys_option(主鍵為sys_id)中從10條記錄開始檢索20條記錄,語句如下:
select * from sys_option limit 10,20
新聞熱點
疑難解答