1. 程式人生 > >Android ,SQLite基本用法

Android ,SQLite基本用法

Android開發中SQLite起著很重要的作用,網上SQLite的教程有很多很多,不過那些教程大多數都講得不是很全面。本人總結了一些SQLite的常用的方法,藉著論壇的大賽,跟大家分享分享的。

一.SQLite的介紹

1.SQLite簡介

SQLite是一款輕型的資料庫,是遵守ACID的關聯式資料庫管理系統,它的設計目標是嵌入  式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式裝置中,可能只需要幾百K的記憶體就夠了。它能夠支援 Windows/Linux/Unix等等主流的作業系統,同時能夠跟很多程式語言相結合,比如Tcl、PHP、Java、C++、.Net等,還有ODBC介面,同樣比起 Mysql、PostgreSQL這兩款開源世界著名的資料庫管理系統來講,它的處理速度比他們都快。

2.SQLite的特點:



  • 輕量級


SQLite和C/S模式的資料庫軟體不同,它是程序內的資料庫引擎,因此不存在資料庫的客戶端和伺服器。使用SQLite一般只需要帶上它的一個動態  庫,就可以享受它的全部功能。而且那個動態庫的尺寸也挺小,以版本3.6.11為例,Windows下487KB、Linux下347KB。


  • 不需要"安裝"


SQLite的核心引擎本身不依賴第三方的軟體,使用它也不需要"安裝"。有點類似那種綠色軟體。


  • 單一檔案  


資料庫中所有的資訊(比如表、檢視等)都包含在一個檔案內。這個檔案可以自由複製到其它目錄或其它機器上。


  • 跨平臺/可移植性


除了主流作業系統 windows,linux之後,SQLite還支援其它一些不常用的作業系統。


  • 弱型別的欄位


同一列中的資料可以是不同型別


  • 開源


這個相信大家都懂的!!!!!!!!!!!!

3.SQLite資料型別

一般資料採用的固定的靜態資料型別,而SQLite採用的是動態資料型別,會根據存入值自動判斷。SQLite具有以下五種常用的資料型別:

NULL: 這個值為空值

VARCHAR(n):長度不固定且其最大長度為 n 的字串,n不能超過 4000。

CHAR(n):長度固定為n的字串,n不能超過 254。

INTEGER: 值被標識為整數,依據值的大小可以依次被儲存為1,2,3,4,5,6,7,8.

REAL: 所有值都是浮動的數值,被儲存為8位元組的IEEE浮動標記序號.

TEXT: 值為文字字串,使用資料庫編碼儲存(TUTF-8, UTF-16BE or UTF-16-LE).

BLOB: 值是BLOB資料塊,以輸入的資料格式進行儲存。如何輸入就如何儲存,不改  變格式。

DATA :包含了 年份、月份、日期。

TIME: 包含了 小時、分鐘、秒。

相信學過資料庫的童鞋對這些資料型別都不陌生的!!!!!!!!!!

二.SQLiteDatabase的介紹


Android提供了建立和是用SQLite資料庫的API。SQLiteDatabase代表一個數據庫物件,提供了操作資料庫的一些方法。在Android的SDK目錄下有sqlite3工具,我們可以利用它建立資料庫、建立表和執行一些SQL語句。下面是SQLiteDatabase的常用方法。 

SQLiteDatabase的常用方法 
方法名稱 方法表示含義
openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory  factory) 開啟或建立資料庫
insert(String table,String nullColumnHack,ContentValues  values) 插入一條記錄
delete(String table,String whereClause,String[]  whereArgs) 刪除一條記錄
query(String table,String[] columns,String selection,String[]  selectionArgs,String groupBy,String having,String  orderBy) 查詢一條記錄
update(String table,ContentValues values,String whereClause,String[]  whereArgs) 修改記錄
execSQL(String sql) 執行一條SQL語句
close() 關閉資料庫

Google公司命名這些方法的名稱都是非常形象的。例如openOrCreateDatabase,我們從字面英文含義就能看出這是個開啟或建立資料庫的方法。




1、開啟或者建立資料庫

在Android 中使用SQLiteDatabase的靜態方法openOrCreateDatabase(String  path,SQLiteDatabae.CursorFactory  factory)開啟或者建立一個數據庫。它會自動去檢測是否存在這個資料庫,如果存在則開啟,不存在則建立一個數據庫;建立成功則返回一個SQLiteDatabase物件,否則丟擲異常FileNotFoundException。

下面是建立名為“stu.db”資料庫的程式碼:
openOrCreateDatabase(String  path,SQLiteDatabae.CursorFactory  factory)
引數1  資料庫建立的路徑

引數2  一般設定為null就可以了

[sql] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. db=SQLiteDatabase.openOrCreateDatabase("/data/data/com.lingdududu.db/databases/stu.db",null);  

2、建立表

建立一張表的步驟很簡單:

  • 編寫建立表的SQL語句
  • 呼叫SQLiteDatabase的execSQL()方法來執行SQL語句


下面的程式碼建立了一張使用者表,屬性列為:id(主鍵並且自動增加)、sname(學生姓名)、snumber(學號)
[sql] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. private void createTable(SQLiteDatabase db){   
  2. //建立表SQL語句   
  3. String stu_table="create table usertable(_id integer primary key autoincrement,sname text,snumber text)";   
  4. //執行SQL語句   
  5. db.execSQL(stu_table);   
  6. }  

3、插入資料
插入資料有兩種方法:
①SQLiteDatabase的insert(String table,String nullColumnHack,ContentValues  values)方法,
  引數1  表名稱,
  引數2  空列的預設值
  引數3  ContentValues型別的一個封裝了列名稱和列值的Map;
②編寫插入資料的SQL語句,直接呼叫SQLiteDatabase的execSQL()方法來執行
第一種方法的程式碼:
[sql] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. private void insert(SQLiteDatabase db){   
  2. //例項化常量值   
  3. ContentValues cValue = new ContentValues();   
  4. //新增使用者名稱   
  5. cValue.put("sname","xiaoming");   
  6. //新增密碼   
  7. cValue.put("snumber","01005");   
  8. //呼叫insert()方法插入資料   
  9. db.insert("stu_table",null,cValue);   
  10. }   

第二種方法的程式碼:
[sql] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. private void insert(SQLiteDatabase db){   
  2. //插入資料SQL語句   
  3. String stu_sql="insert into stu_table(sname,snumber) values('xiaoming','01005')";   
  4. //執行SQL語句   
  5. db.execSQL(sql);   
  6. }   

4、刪除資料

刪除資料也有兩種方法:

①呼叫SQLiteDatabase的delete(String table,String whereClause,String[]  whereArgs)方法
引數1  表名稱 
引數2  刪除條件
引數3  刪除條件值陣列

②編寫刪除SQL語句,呼叫SQLiteDatabase的execSQL()方法來執行刪除。

第一種方法的程式碼:

[sql] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. private void delete(SQLiteDatabase db) {   
  2. //刪除條件   
  3. String whereClause = "id=?";   
  4. //刪除條件引數   
  5. String[] whereArgs = {String.valueOf(2)};   
  6. //執行刪除   
  7. db.delete("stu_table",whereClause,whereArgs);   
  8. }   

第二種方法的程式碼:
[sql] view plain copy  print?在CODE上檢視程式碼片派生到我的程式碼片
  1. private void delete(SQLiteDatabase db) {   
  2. //刪除SQL語句   
  3. String sql = "delete from stu_table where _id = 6"

    相關推薦

    Android SQLite基本用法

    在Android開發中SQLite起著很重要的作用,網上SQLite的教程有很多很多,不過那些教程大多數都講得不是很全面。本人總結了一些SQLite的常用的方法,藉著論壇的大賽,跟大家分享分享的。 一.SQLite的介紹 1.SQLite簡介 SQLit

    Android 操作SQLite基本用法

    一.SQLite的介紹 1.SQLite簡介 SQLite是一款輕型的資料庫,是遵守ACID的關聯式資料庫管理系統,它的設計目標是嵌入  式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式裝置中,可能只需要幾百K的記憶體就夠了。它能夠支援 Window

    總結常用的Transformation運算元和Action運算元基本用法

    只有是Action時,才會執行立即操作。 Transformation是 lazy的操作,不會立即執行,執行Transformation的運算元時,會返回一個新的RDD,依賴上一個RDD transformation: 1、sortBy : 對於RDD的是非元組型,rdd1.soreB

    Android之Retrofit基本用法

    1.Retrofit基本用法 1.初始化 webInterface = new Retrofit.Builder() .baseUrl(hostname) .client(client)//這

    sedawkgrep基本用法

    grep:文字搜尋 grep ‘w[ea]ll’ file_name 在file_name檔案中找到wall 或者是well 所在的所有行並顯示 grep ‘w[^e]ll’ file_name 在file_name檔案中找到”非well” 所在的所有行並顯示 grep

    Android Volley的基本用法

    1. Volley簡介 我們平時在開發Android應用的時候不可避免地都需要用到網路技術,而多數情況下應用程式都會使用HTTP協議來發送和接收網路資料。Android系統中主要提供了兩種方式來進行HTTP通訊,HttpURLConnection和HttpClient,

    SQLite基本用法

      在Android中一共提供了5種資料儲存方式,分別為:   (1)Files:通過FileInputStream和FileOutputStream對檔案進行操作。具體使用方法可以參閱博文《Android學習筆記34:使用檔案儲存資料》。   (2)Shared Preferences:常用來儲存鍵

    Android ActionBar的基本用法

    1、ActionBar的簡介 ActionBar位於Activity的頂部,可用來顯示activity的標題、Icon、Actions和一些用於互動的View。它也可被用於應用的導航。 ActionBar 是在Android 3.0(API 11)中加入到SK中的,想在低

    Android ActionBar的基本用法(轉自bigconvience)

    1、ActionBar的簡介 ActionBar位於Activity的頂部,可用來顯示activity的標題、Icon、Actions和一些用於互動的View。它也可被用於應用的導航。 ActionBar 是在Android 3.0(API 11)中加入到SK中的

    Android屬性動畫完全解析(上)初識屬性動畫的基本用法

    fcm 操作 fad 擴展性 改變 內部使用 如果 轉載 @override 轉載請註明出處:http://blog.csdn.net/guolin_blog/article/details/43536355 在手機上去實現一些動畫效果算是件比較炫酷的事情,因此Andr

    Android圖片載入框架最全解析(一)Glide的基本用法

    現在Android上的圖片載入框架非常成熟,從最早的老牌圖片載入框架UniversalImageLoader,到後來Google推出的Volley,再到後來的新興軍Glide和Picasso,當然還有Facebook的Fresco。每一個都非常穩定,功能也都十分強大。但是它們

    學習筆記:Android SQLite並實現SQLite基本CRUD操作的Demo

    package com.steven.mydatabasetest; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; im

    Android 屬性動畫詳解屬性動畫基本用法

    Hello,大家好,今天要給大家講的是Android 屬性動畫詳解! 在Tween動畫的討論中,我們提到在Android中動畫可以分為三類:①幀動畫②Tween(補間動畫)③Property Anim

    (郭霖)Android圖片載入框架最全解析(一)Glide的基本用法

    本文同步發表於我的微信公眾號,掃一掃文章底部的二維碼或在微信搜尋 郭霖 即可關注,每天都有文章更新。 現在Android上的圖片載入框架非常成熟,從最早的老牌圖片載入框架UniversalImageLoader,到後來Google推出的Volley,再到後來的新興軍Glide和Picas

    Android學習筆記----SQLite資料庫基本用法

    /*************************************************************************/ 資料庫 Android 為了讓我們能夠更加方

    AndroidSQLite資料庫基本用法詳解(極簡潔)

        Android操作SQLite資料庫(極簡潔,極易懂) 本篇原始碼地址: 原始碼裡面有詳細註釋,切記要修改一下gradle的版本號為本地gradle版本號,否則AndroidStduio會自行下載,浪費時間。 一、成品效果圖 Android

    Android Volley完全解析(一)初識Volley的基本用法

    1. Volley簡介我們平時在開發Android應用的時候不可避免地都需要用到網路技術,而多數情況下應用程式都會使用HTTP協議來發送和接收網路資料。Android系統中主要提供了兩種方式來進行HTTP通訊,HttpURLConnection和HttpClient,幾乎在任

    listmapset集合的基本用法及差異

    nbsp htable body 根據 pos null clas 速度 就是 List:1.可以允許重復的對象。    2.可以插入多個null元素。 3.是一個有序容器,保持了每個元素的插入順序,輸出的順序就是插入的順序。 4.常用的實

    Android ContentProvider基本用法

    truct 數據共享 implement notify username 資源 per mime類型 exc 轉自:https://www.jianshu.com/p/601086916c8f 一、基本概念 ContentProvider是Android系統中提

    第一節基本用法

    sat () port AI 臨時 width ble 取數 運算 推薦播客:我的Tensorflow學習之路 http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/basic_usage.html 項