Android學習筆記----SQLite資料庫基本用法
/*************************************************************************/
資料庫 Android 為了讓我們能夠更加方便地管理資料庫,專門提供了一個 SQLiteOpenHelper 幫助類,藉助這個類就可以非常簡單地對資料庫進行建立和升級 SQLiteOpenHelper 具有的方法 onCreate() : 抽象方法,需在子類中實現,在該方法中實現建立資料庫的邏輯onUpgrade(): 抽象方法,需在子類中實現,在該方法中實現升級資料庫的邏輯
getWritableDatabase() : 實 例 方 法,
當資料庫不可寫入的時候(如磁碟空間已滿) getReadableDatabase()方法返回的對 象將以只讀的方式去開啟資料庫,而 getWritableDatabase()方法則將出現異常
構造方法: SQLiteOpenHelper 中有兩個構造方法可供重寫,一般使用引數少一點的那個構造方法即 可。 構造方法的引數 第一個引數 Context,上下文
第二個引數 建立的資料庫的名稱 第三個引數 在查詢資料的時候返回一個自定義的 Cursor,一般都是傳入 null 第四個引數 當 前 數 據 庫 的 版 本 號,可 用 於 對 數 據 庫 進 行 升 級 操 作 構 建 出SQLiteOpenHelper 的例項之後,再呼叫它的 getReadableDatabase()或 getWritableDatabase()方法就能夠建立資料庫了,資料庫檔案會存放在/data/data/<package name>/databases/目錄下。此時, 重寫的 onCreate()方法也會得到執行, 所以通常會在這裡去處理一些建立表的邏輯。
public class CoolWeatherOpenHelper extends SQLiteOpenHelper {
/*
* Province省份
*
* */
public static final String CREATE_PROVINCE = "create table Province(id integer primary key autoincrement,province_name text,province_code text)";
/*
* City城市
*
* */
public static final String CREATE_CITY = "create table City(id integer primary key autoincrement,city_name text,city_code text,province_code text)";
/*
* Country縣
*
* */
public static final String CREATE_COUNTRY = "create table Country(id integer primary key autoincrement,country_name text,country_code text,city_code text)";
public CoolWeatherOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_PROVINCE);
db.execSQL(CREATE_CITY);
db.execSQL(CREATE_COUNTRY);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
新增資料
CoolWeatherOpenHelper dbHelper = new CoolWeatherOpenHelper(this, "cool_weather", null, 1);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
// 開始組裝第一條資料
values.put("province_name", "山東");
values.put("province_code", "07");
db.insert("Province", null, values); // 插入第一條資料
values.clear();
// 開始組裝第二條資料
values.put("province_name", "山西");
values.put("province_code", "09");
db.insert("Province", null, values); // 插入第二條資料
更新資料
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("province_name", "湖北");
db.update("Province", values, "province_code = ?", new String[] {"09"});
刪除資料
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("Province", "province_code = ?", new String[] {"09"});
查詢資料
SQLiteDatabasedb = dbHelper.getWritableDatabase();
Cursor cursor = db.query("Province", null, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
String priovice_name = cursor.getString(cursor.getColumnIndex("province_name"));
String province_code = cursor.getString(cursor.getColumnIndex("provice_code"));
Log.d("MainActivity", "province name is " + priovice_name);
Log.d("MainActivity", "province code is " + province_code);
} while (cursor.moveToNext());
}
cursor.close();
資料庫中的事務
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.beginTransaction(); // 開啟事務
try {
..............................................................
..............................................................
..............................................................
db.setTransactionSuccessful(); // 事務已經執行成功
} catch (Exception e) {
e.printStackTrace();
} finally {
db.endTransaction(); // 結束事務
}
注:為了確保endTransaction()方法一定會執行,將該方法放在finally方法裡面 Android 已經給我們提供了很多非常方便的 API 用於操作資料庫,不過總會有一些人不習慣去使用這些輔助性的方法,而是更加青睞於直接使用 SQL 來操作資料庫 新增資料 db.execSQL("insert into Province (provice_name, province_code) values(?, ?)",new String[] { "山東", "07" }); 更新資料 db.execSQL("update Province set province_code = ? where province_name = ?", new String[] { "10", "山西" }); 刪除資料 db.execSQL("delete from Province where province_code = ?", new String[] { "10" }); 查詢資料 db.rawQuery("select * from Book", null);
相關推薦
Android學習筆記----SQLite資料庫基本用法
/*************************************************************************/ 資料庫 Android 為了讓我們能夠更加方
Android學習筆記——SQLite資料庫案例【商品展示】
簡介 SQLite,是一款輕型的資料庫,是遵守ACID的關係型資料庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域專案。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式裝置中,可能只需要幾百K的記憶體就夠
【Android】SQLite資料庫基本用法詳解(極簡潔)
Android操作SQLite資料庫(極簡潔,極易懂) 本篇原始碼地址: 原始碼裡面有詳細註釋,切記要修改一下gradle的版本號為本地gradle版本號,否則AndroidStduio會自行下載,浪費時間。 一、成品效果圖 Android
Linux學習筆記13——sed基本用法
sed命令三大基本文本處理工具:grep,sed(流編輯器),awk sed: Stream EDitor 行編輯器:sed全屏編輯器:vi sed: 模式空間默認不編輯文件本身,僅對模式空間中的數據做處理;而後,處理結束後,將模式空間打印至屏幕; sed [options] ‘AddressCommand‘
Android學習之SQLite資料庫儲存
今天學習sqlite資料庫儲存,sqlite資料庫是輕量級的,非常小,只有幾百K大小,非常 移動裝置使用,幾乎所有的手機使用的都是sqlite資料庫。 sqlite儲存的資料型別:.db 資料儲存的路徑:/data/data/packageName/d
Android學習之SQLite資料庫簡單測試例項
MyOpenDB.java檔案 package com.example.androidsqlite; import android.content.Context; import android.database.sqlite.SQLiteDatabase; impor
JUnit學習筆記(一):基本用法
JUnit學習筆記(一):基本用法 JUnit是Java的單元測試框架。JUnit提倡“先測試後編碼”的理念,強調建立測試資料的程式碼,可以先測試,再應用。 框架的特點: JUnit
Java學習筆記之LinkedList基本用法
LinkedList簡介LinkedList 是一個繼承於AbstractSequentialList的雙向連結串列。它也可以被當作堆疊、佇列或雙端佇列進行操作。LinkedList 實現 List 介面,能進行佇列操作。LinkedList 實現 Deque 介面,即能將L
Android學習筆記 四一 SQLite的使用
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Android學習筆記 四二 SQLite ListView ContextMenu
繼續上一個例子,結合ListView中對SQLite進行操作。通過CursorAdapter在ListView中的資料呈現在上一個例子中,我們可以對SQLite中的資料庫進行增刪改查,將資料讀到遊標Cursor中,然後一一讀出。在Android中可以通過CursorAdapter直接將資料對映到ListVie
MySQL學習筆記:資料庫基礎、MySQL基本操作、表的查詢
#選擇資料庫需要考慮的問題: 1、是否開源 開源軟體不一定免費:MySQL,MariaDB(這兩者語法差不多,MySQL可能閉源,但是MariaDB不會)MongoDB
android 註解學習筆記一: java基本註解
註解 定義:註解(Annotation),也叫元資料。一種程式碼級別的說明。它是JDK1.5及以後版本引入的一個特性,與類、介面、列舉是在同一個層次。它可以宣告在包、類、欄位、方法、區域性變數、方法引數等的前面,用來對這些元素進行說明,註釋。 註解的功能建立在反
Android學習筆記(35)--- 使用sqlite 把.txt檔案導進.db
一、新建txt檔案,以一下固定格式儲存資料,如下: 1|1000|file:///system/kindergarten/item_main.html 2|1001|file:///system/kindergarten/item_main.html 3|1002|file
MYSQL學習筆記三——資料庫的基本操作
1. 建立資料庫 MySQL安裝完成後,會在其data目錄下建立幾個必需的資料庫,可以用“show databases;”檢視當前存在的所有資料庫。 1.1建立資料庫是在系統磁碟上劃分一塊區域用於資料的儲存和管理。 1.2MySQL中建立資料庫的基本SQL語法:
Android學習筆記八:SQLite判斷一張表是否存在
CREATE TABLE sqlite_master ( type TEXT, name TEXT, tbl_name TEXT, rootpage INTEGER, sql TEXT ); 對於表來說,type 欄位永遠是 ‘table’,name 欄位永遠是表的名字。所以,要獲得資料庫中所有表的列表,
Android學習筆記:介面設計Material Design的基本使用方法(二)
四、卡片式佈局1、使用CardView實現卡片式佈局CardView由appcompat-v7庫提供,它也是一個FrameLayout,只是額外的提供了圓角和陰影等效果。CardView的使用方法:<android.support.v7.widget.CardView
spring boot學習筆記(三):controller用法及資料庫操作
一、controller用法 1、@controller和@RestController註解的區別 @controller處理http請求,頁面展示需要配合thymeleaf模板使用。 示例: a、首先,在pom檔案新增thymeleaf模板依賴
Android輔助功能 Accessibility Services基本用法筆記
概述 Accessbility 又叫做輔助功能,是Android官方推出幫助身體不便或者操作不靈活的人來輔助操作手機應用的。當然也可以用來幹一些別的事,比如自動搶紅包啊,靜默安裝app,幫助用於開一系列許可權操作等。出於專案需求,大概研究了下Accessili
SQLITE學習筆記二(資料庫管理,命令列操作)
2.下載完成後解壓得到sqlite3.exe,放置在任意目錄; 3.使用方式: a.開啟資料庫 Microsoft Windows XP [版本 5.1.2600] (C) 版權所有 1985-2001 Microsoft Corp. C:\Documents a
Pro Android學習筆記(一三七):Home Screen Widgets(3):配置Activity
map onclick widgets info xtra ces extends height appwidget 文章轉載僅僅能用於非商業性質,且不能帶有虛擬貨幣、積分、註冊等附加條件。轉載須註明出處http://blog.csdn.net/flowingfly