導航:首頁 > 操作系統 > android資料庫update

android資料庫update

發布時間:2022-08-26 20:26:25

『壹』 android sqlite upgrade何時調用

當資料庫版本號發生變化的時候的調用onUpdate。就是你以前的版本是1,然後升級成為2了,會調用這個,讓你做一些操作,比方說將以前的表刪除掉,新創建一個。或者給以前的表增加一個欄位什麼的。

『貳』 android sqlitedatabase update 成功與否

Android 不自動提供資料庫。

在 Android 應用程序中使用 SQLite,必須自己創建資料庫,然後創建表、索引,填充數據。Android 提供了 SQLiteOpenHelper 幫助你創建一個資料庫,你只要繼承 SQLiteOpenHelper 類,就可以輕松的創建資料庫。SQLiteOpenHelper 類根據開發應用程序的需要,封裝了創建和更新資料庫使用的邏輯。

SQLiteOpenHelper 的子類,至少需要實現三個方法:


構造函數,調用父類 SQLiteOpenHelper 的構造函數。這個方法需要四個參數:上下文環境(例如,一個 Activity),資料庫名字,一個可選的游標工廠(通常是 Null),一個代表你正在使用的資料庫模型版本的整數。
onCreate()方法,它需要一個 SQLiteDatabase 對象作為參數,根據需要對這個對象填充表和初始化數據。


onUpgrage() 方法,它需要三個參數,一個 SQLiteDatabase 對象,一個舊的版本號和一個新的版本號,這樣你就可以清楚如何把一個資料庫從舊的模型轉變到新的模型。

下面示例代碼展示了如何繼承 SQLiteOpenHelper 創建資料庫:

public class DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context, String name, CursorFactory cursorFactory, int version)
{
super(context, name, cursorFactory, version);
}

@Override

public void onCreate(SQLiteDatabase db) {

// TODO 創建資料庫後,對資料庫的操作

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO 更改資料庫版本的操作

}
super.onOpen(db);
// TODO 每次成功打開資料庫後首先被執行

}
}
復制代碼
接下來討論具體如何創建表、插入數據、刪除表等等。調用 getReadableDatabase() 或 getWriteableDatabase() 方法,你可以得到 SQLiteDatabase 實例,具體調用那個方法,取決於你是否需要改變資料庫的內容:

db=(new DatabaseHelper(getContext())).getWritableDatabase();

return (db == null) ? false : true;
復制代碼
上面這段代碼會返回一個 SQLiteDatabase 類的實例,使用這個對象,你就可以查詢或者修改資料庫。
當你完成了對資料庫的操作(例如你的 Activity 已經關閉),需要調用 SQLiteDatabase 的 Close() 方法來釋放掉資料庫連接。

至少需要實現三個方法:
構造函數,調用父類 SQLiteOpenHelper 的構造函數。這個方法需要四個參數:上下文環境(例如,一個 Activity),資料庫名字,一個可選的游標工廠(通常是 Null),一個代表你正在使用的資料庫模型版本的整數。
onCreate()方法,它需要一個 SQLiteDatabase 對象作為參數,根據需要對這個對象填充表和初始化數據。
onUpgrage() 方法,它需要三個參數,一個 SQLiteDatabase 對象,一個舊的版本號和一個新的版本號,這樣你就可以清楚如何把一個資料庫從舊的模型轉變到新的模型。

下面示例代碼展示了如何繼承 SQLiteOpenHelper 創建資料庫:

public class DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context, String name, CursorFactory cursorFactory, int version)
{
super(context, name, cursorFactory, version);
}

@Override

public void onCreate(SQLiteDatabase db) {

// TODO 創建資料庫後,對資料庫的操作

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO 更改資料庫版本的操作

}
super.onOpen(db);
// TODO 每次成功打開資料庫後首先被執行

}
}
復制代碼
接下來討論具體如何創建表、插入數據、刪除表等等。調用 getReadableDatabase() 或 getWriteableDatabase() 方法,你可以得到 SQLiteDatabase 實例,具體調用那個方法,取決於你是否需要改變資料庫的內容:

db=(new DatabaseHelper(getContext())).getWritableDatabase();

return (db == null) ? false : true;
復制代碼
上面這段代碼會返回一個 SQLiteDatabase 類的實例,使用這個對象,你就可以查詢或者修改資料庫。
當你完成了對資料庫的操作(例如你的 Activity 已經關閉),需要調用 SQLiteDatabase 的 Close() 方法來釋放掉資料庫連接。

『叄』 如何對android多媒體資料庫進行增刪改

Android四種存儲方式: sharedpreference,file,SQlite,contentprovider。

1、SharedPreferences是一種輕型的數據存儲方式,它的本質是基於XML文件存儲key-value鍵值對數據,通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/<包名>/shared_prefs目錄下。SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過Editor對象實現。實現SharedPreferences存儲的步驟如下:

一、根據Context獲取SharedPreferences對象

二、利用edit()方法獲取Editor對象。

三、通過Editor對象存儲key-value鍵值對數據。

四、通過commit()方法提交數據。

具體實現代碼如下:實現存儲,讀取,清除,刪除

效果圖:

首先創建:// 首先拿到sharedpreference對象

mShared =getSharedPreferences(SHARED_MAIN_XML, MODE_PRIVATE);

存儲:

private void write() {// 存入數據

savename = name.getText().toString().trim();

saveage = Integer.valueOf(age.getText().toString().trim());

Editor editor = mShared.edit();

editor.putString("name", savename);

editor.putInt("age", saveage);

// 保證操作的事務完整性

editor.commit();

}

閱讀:

private String read() {// 從資料庫里讀取數據

namecontent = mShared.getString("name", "資料庫里沒有存儲姓名");

agecontent = mShared.getInt("age", 0);

String reading = "姓名:" + namecontent + "\n年齡:" + agecontent;

return reading;

}

清除內容:

private void clear() {//清除內容

/** 開始清除SharedPreferences中保存的內容 **/

Editor editor = mShared.edit();

editor.remove("name");

editor.remove("age");

editor.commit();

}

刪除文件:

private void delete() {//刪除文件

/** 刪除SharedPreferences文件 **/

Filefile = new File("/data/data/cn.csdn.activity" + "/shared_prefs/"

+ SHARED_MAIN_XML + ".xml");

if (file.exists()) {

file.delete();

Toast.makeText(this, "刪除成功", Toast.LENGTH_LONG).show();

}

}

haredPreferences對象與SQLite資料庫相比,免去了創建資料庫,創建表,寫SQL語句等諸多操作,相對而言更加方便,簡潔。但是SharedPreferences也有其自身缺陷,比如其職能存儲boolean,int,float,long和String五種簡單的數據類型,比如其無法進行條件查詢等。所以不論SharedPreferences的數據存儲操作是如何簡單,它也只能是存儲方式的一種補充,而無法完全替代如SQLite資料庫這樣的其他數據存儲方式。

2、File: 即常說的文件(I/O)存儲方法,常用存儲大數量的數據,但是缺點是更新數據將是一件困難的事情。

下面實現:在本地data文件下使用自己生成的文件處理數據的新建儲存 讀取 刪除

如果說不想把內容存在SharedPreferences中的話,我們可以自己寫一個文件保存須要的數據,在這里我將文件保存在系統中的工程路徑下。

跟上面布局一樣,刪除文件也一樣,清除內容也查不多,下面只是簡單的寫和讀的方法:

寫:

17String
nameage="名字:"+name.getText().toString().trim()+"年齡:"+age.getText().toString();

try {

os = this.openFileOutput(SHARED_MAIN_XML, MODE_PRIVATE);

/* 把字元串轉換成位元組數組,寫入文件中 */

os.write(nameage.getBytes());

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}finally {

try {

/* 關閉文件輸出流 */

os.close();

} catch (IOException e) {

e.printStackTrace();

}

}

讀:

private String read() {

String nameage="";

// 打開文件輸入流,

try {

is = this.openFileInput(SHARED_MAIN_XML);

/* 初始化位元組數組 */

b = new byte[1024];

/* 從文件輸入流中讀取內容到位元組數組中,返回內容長度 */

int length = is.read(b);

/* 把位元組數組轉換成字元串 */

nameage= new String(b);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return nameage;

}

很簡單吧!!

3、SQLite是一種轉為嵌入式設備設計的輕型資料庫,其只有五種數據類型,分別是:

NULL: 空值

INTEGER: 整數

REAL: 浮點數

TEXT: 字元串

BLOB: 大數據

它是一個輕量級的資料庫、非常小 、 移植性好、效率高、可靠

在Android系統中提供了android.database.sqlite包,用於進行SQLite資料庫的增、刪、改、查工作。

創建與刪除資料庫

封裝一個類去繼承SQLiteOpenHelper
在構造函數中傳入資料庫名稱與資料庫版本號,資料庫被創建的時候會調用onCreate(SQLiteDatabase db)
方法,資料庫版本號發生改變的時候會調用onUpgrade(SQLiteDatabase db, int oldVersion,
intnewVersion)方法,可以方便的對軟體游戲升級後做出相應處理避免覆蓋安裝資料庫發生改變產生的錯誤。調用SQLiteOpenHelper
的getReadableDatabase()方法去創建資料庫,如果資料庫不存在則創建並且返回SQLiteDatabase對象,如果資料庫存在則不創建只返回SQLiteDatabase對象。調用
deleteDatabase(DATABASE_NAME)方法 傳入資料庫名稱則可刪除資料庫。

第一種:詳細請看上一遍博客:android之利用SQLite資料庫實現登陸和注冊,http://blog.csdn.net/rhljiayou/article/details/7085347

下面介紹第二種:另一種添刪改查操作

效果圖:

布局文件很簡單,在此不再給出!!

直接給創建資料庫和表,增刪改查的代碼:

public class UserService {

private DatabaseHelper helper;

public UserService(Context context, String name, int version) {

helper = new DatabaseHelper(context, name, version);

}

public UserService(Context context, String name) {

helper = new DatabaseHelper(context, name);

}

public void insert(UserDao user) {// 插入數據

SQLiteDatabase sdb = helper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("username", user.getUsername());

values.put("password", user.getPassword());

sdb.insert("user", "name", values);

sdb.close();

}

public void delete(int id) {// 刪除數據

SQLiteDatabase sdb = helper.getWritableDatabase();

sdb.delete("user", "id=?", new String[]{String.valueOf(id)});

sdb.close();

}

public void update(UserDao user, int id) {// 更新數據

SQLiteDatabase sdb = helper.getWritableDatabase();

ContentValues values=new ContentValues();

values.put("username", user.getUsername());

values.put("password", user.getPassword());

sdb.update("user", values, "id=?", new String[]{String.valueOf(id)});

sdb.close();

}

public Cursor select() {// 查詢所有數據

SQLiteDatabase sdb = helper.getWritableDatabase();

return sdb.query("user", new String[]{"id as _id","username","password"},
null, null, null, null, null);

}

public UserDao find(int id){//按id查詢數據

UserDao user=null;

SQLiteDatabase sdb=helper.getWritableDatabase();

Cursor cursor=sdb.query("user", new String[]{"id","username","password"},
"id=?", new String[]{String.valueOf(id)}, null, null, null);

if(cursor.moveToFirst()){

user=new UserDao();

user.setId(cursor.getInt(0));

user.setUsername(cursor.getString(1));

user.setPassword(cursor.getString(2));

}

cursor.close();

sdb.close();

return user;

}

}

插入數據:通過insert(String table, StringnullColumnHack, ContentValues
values)方法插入數據,其中參數含義分別為:

table: 目標表名

nullColumnHack:
指定表中的某列列名。因為在SQLite中,不允許不允許插入所有列均為null的記錄,因此初始值有值為空時,此列需顯式賦予null

values:ContentValues對象,類似於java中的Map。以鍵值對的方式保存數據。

『肆』 android sqlite 已經插入到資料庫的數據查不到

樓主取數據的循環方式有點問題,試試下面的
for(cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext())
{
HashMap map=new HashMap();
map.put("num1", cursor.getString(1));
map.put("num2", cursor.getString(2));
map.put("num3", cursor.getString(3));
map.put("salesub", cursor.getString(4));
map.put("addr", cursor.getString(6));
map.put("phonenum", cursor.getString(7));
list.add(map);
}

『伍』 android開發 修改了資料庫後怎麼更新

給你提供幾種方法吧:

  1. 在查看學生信息的那個Activity裡面,重寫onResume方法,在這個方法裡面獲取數據來顯示視圖,無論是這個activity新創建,還是從後台不可見轉為前台,都會走這個生命周期。

  2. 數據顯示頁面監聽數據的變化來更新輸入。如果管理數據使用的是 ContentProvider管理的話,直接使用ContentObserver來監聽相應的Uri即可,如果不是這種方式的話,可以在操作學生資料庫的時候發送一個廣播,然後現實學生頁面的Activity去監聽這個廣播,收到廣播後去更新界面。

  3. 如果是從查看信息界面進入的修改信息界面,那麼可以使用startActivityForResult方法啟動信息修改界面,信息修改後調用setResult方法返回修改後的數據給信息顯示界面,信息顯示界面重寫onActivityResult方法來獲取新的學生信息,從而更新界面

    暫時就想到這幾種方法吧,希望對你有幫助~

『陸』 android SQLiteDatabase中的update函數用法

創建資料庫
Android
不自動提供資料庫。在
Android
應用程序中使用
SQLite,必須自己創建資料庫,然後創建表、索引,填充數據。Android
提供了
SQLiteOpenHelper
幫助你創建一個資料庫,你只要繼承
SQLiteOpenHelper
類,就可以輕松的創建資料庫。SQLiteOpenHelper
類根據開發應用程序的需要,封裝了創建和更新資料庫使用的邏輯。SQLiteOpenHelper
的子類,至少需要實現三個方法:
構造函數,調用父類
SQLiteOpenHelper
的構造函數。這個方法需要四個參數:上下文環境(例如,一個
Activity),資料庫名字,一個可選的游標工廠(通常是
Null),一個代表你正在使用的資料庫模型版本的整數。
onCreate()方法,它需要一個
SQLiteDatabase
對象作為參數,根據需要對這個對象填充表和初始化數據。
onUpgrage()
方法,它需要三個參數,一個
SQLiteDatabase
對象,一個舊的版本號和一個新的版本號,這樣你就可以清楚如何把一個資料庫從舊的模型轉變到新的模型。
下面示例代碼展示了如何繼承
SQLiteOpenHelper
創建資料庫:
public
class
DatabaseHelper
extends
SQLiteOpenHelper
{
DatabaseHelper(Context
context,
String
name,
CursorFactory
cursorFactory,
int
version)
{

super(context,
name,
cursorFactory,
version);
}
@Override
public
void
onCreate(SQLiteDatabase
db)
{
//
TODO
創建資料庫後,對資料庫的操作
}
@Override
public
void
onUpgrade(SQLiteDatabase
db,
int
oldVersion,
int
newVersion)
{
//
TODO
更改資料庫版本的操作
}
super.onOpen(db);
//
TODO
每次成功打開資料庫後首先被執行
}
}
復制代碼
接下來討論具體如何創建表、插入數據、刪除表等等。調用
getReadableDatabase()

getWriteableDatabase()
方法,你可以得到
SQLiteDatabase
實例,具體調用那個方法,取決於你是否需要改變資料庫的內容:
db=(new
DatabaseHelper(getContext())).getWritableDatabase();
return
(db
==
null)
?
false
:
true;
復制代碼
上面這段代碼會返回一個
SQLiteDatabase
類的實例,使用這個對象,你就可以查詢或者修改資料庫。
當你完成了對資料庫的操作(例如你的
Activity
已經關閉),需要調用
SQLiteDatabase

Close()
方法來釋放掉資料庫連接。

『柒』 Android 資料庫如何更新

1、設置一個DB_VERSION

publicstaticfinalintDB_VERSION=1;

2、當你要更新表的時候就把DB_VERSION+1,就會觸發onUpgrade,資料庫就更新了,記得採納

publicDBHelper(){
//fortest
Config=newDbManager.DaoConfig()
.setDbName(DB_NAME)
.setDbVersion(DB_VERSION)
.setDbDir(Environment.getExternalStorageDirectory())
.setDbOpenListener(newDbManager.DbOpenListener(){
@Override
publicvoidonDbOpened(DbManagerdb){
db.getDatabase().enableWriteAheadLogging();
}
})
.setDbUpgradeListener(newDbManager.DbUpgradeListener(){
@Override
publicvoidonUpgrade(DbManagerdb,intoldVersion,intnewVersion){
updateTable(db,xx.class);

}
});
}

『捌』 android sqlite資料庫的更新

一、使用嵌入式關系型SQLite資料庫存儲數據
在Android平台上,集成了一個嵌入式關系型資料庫——SQLite,SQLite3支持NULL、INTEGER、REAL(浮點數字)、 TEXT(字元串文本)和BLOB(二進制對象)數據類型,雖然它支持的類型只有五種,但實際上sqlite3也接受varchar(n)、 char(n)、decimal(p,s) 等數據類型,只不過在運算或保存時會轉成對應的五種數據類型。 SQLite最大的特點是你可以把各種類型的數據保存到任何欄位中,而不用關心欄位聲明的數據類型是什麼。例如:可以在Integer類型的欄位中存放字元串,或者在布爾型欄位中存放浮點數,或者在字元型欄位中存放日期型值。 但有一種情況例外:定義為INTEGER PRIMARY KEY的欄位只能存儲64位整數, 當向這種欄位保存除整數以外的數據時,將會產生錯誤。 另外,在編寫CREATE TABLE 語句時,你可以省略跟在欄位名稱後面的數據類型信息,如下面語句你可以省略name欄位的類型信息:
CREATE TABLE person (personid integer primary key autoincrement, name varchar(20))
SQLite可以解析大部分標准SQL語句,如:
復制代碼 代碼如下:

查詢語句:select * from 表名 where 條件子句 group by 分組字句 having ... order by 排序子句
如: select * from person
select * from person order by id desc
select name from person group by name having count(*)>1
分頁SQL與mysql類似,下面SQL語句獲取5條記錄,跳過前面3條記錄
select * from Account limit 5 offset 3 或者 select * from Account limit 3,5
插入語句:insert into 表名(欄位列表) values(值列表)。如: insert into person(name, age) values(『傳智',3)
更新語句:update 表名 set 欄位名=值 where 條件子句。如:update person set name=『傳智『 where id=10
刪除語句:delete from 表名 where 條件子句。如:delete from person where id=10

二、使用SQLiteOpenHelper對資料庫進行版本管理
我們在編寫資料庫應用軟體時,需要考慮這樣的問題:因為我們開發的軟體可能會安裝在很多用戶的手機上,如果應用使用到了SQLite資料庫,我們必須在用戶初次使用軟體時創建出應用使用到的資料庫表結構及添加一些初始化記錄,另外在軟體升級的時候,也需要對數據表結構進行更新。那麼,我們如何才能實現在用戶初次使用或升級軟體時自動在用戶的手機上創建出應用需要的資料庫表呢?總不能讓我們在每個需要安裝此軟體的手機上通過手工方式創建資料庫表吧?因為這種需求是每個資料庫應用都要面臨的,所以在Android系統,為我們提供了一個名為SQLiteOpenHelper的抽象類,必須繼承它才能使用,它是通過對資料庫版本進行管理來實現前面提出的需求。

為了實現對資料庫版本進行管理,SQLiteOpenHelper類提供了兩個重要的方法,分別是onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion),前者用於初次使用軟體時生成資料庫表,後者用於升級軟體時更新資料庫表結構。當調用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法獲取用於操作資料庫的SQLiteDatabase實例的時候,如果資料庫不存在,Android系統會自動生成一個資料庫,接著調用onCreate()方法,onCreate()方法在初次生成資料庫時才會被調用,在onCreate()方法里可以生成資料庫表結構及添加一些應用使用到的初始化數據。onUpgrade()方法在資料庫的版本發生變化時會被調用,一般在軟體升級時才需改變版本號,而資料庫的版本是由程序員控制的,假設資料庫現在的版本是1,由於業務的變更,修改了資料庫表結構,這時候就需要升級軟體,升級軟體時希望更新用戶手機里的資料庫表結構,為了實現這一目的,可以把原來的資料庫版本設置為2(有同學問設置為3行不行?當然可以,如果你願意,設置為100也行),並且在 onUpgrade()方法裡面實現表結構的更新。當軟體的版本升級次數比較多,這時在onUpgrade()方法裡面可以根據原版號和目標版本號進行判斷,然後作出相應的表結構及數據更新。

getWritableDatabase()和 getReadableDatabase()方法都可以獲取一個用於操作資料庫的SQLiteDatabase實例。但 getWritableDatabase() 方法以讀寫方式打開資料庫,一旦資料庫的磁碟空間滿了,資料庫就只能讀而不能寫,倘若使用getWritableDatabase()打開資料庫就會出錯。getReadableDatabase()方法先以讀寫方式打開資料庫,如果資料庫的磁碟空間滿了,就會打開失敗,當打開失敗後會繼續嘗試以只讀方式打開資料庫。
注意:getWritableDatabase(),getReadableDatabase的區別是當資料庫寫滿時,調用前者會報錯,調用後者不會,所以如果不是更新資料庫的話,最好調用後者來獲得資料庫連接。
代碼:
復制代碼 代碼如下:

public class DatabaseHelper extends SQLiteOpenHelper {
//類沒有實例化,是不能用作父類構造器的參數,必須聲明為靜態
private static final String name = "ljqdb"; //資料庫名稱
private static final int version = 1; //資料庫版本
public DatabaseHelper(Context context) {
//第三個參數CursorFactory指定在執行查詢時獲得一個游標實例的工廠類,設置為null,代表使用系統默認的工廠類
super(context, name, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE IF NOT EXISTS person (
personid integer primary key autoincrement, name varchar(20), age INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(" ALTER TABLE person ADD phone VARCHAR(12) NULL "); //往表中增加一列
// DROP TABLE IF EXISTS person 刪除表
}
}

在實際項目開發中,當資料庫表結構發生更新時,應該避免用戶存放於資料庫中的數據丟失。
三、使用SQLiteDatabase操作SQLite資料庫
Android提供了一個名為SQLiteDatabase的類,該類封裝了一些操作資料庫的API,使用該類可以完成對數據進行添加(Create)、查詢(Retrieve)、更新(Update)和刪除(Delete)操作(這些操作簡稱為CRUD)。對SQLiteDatabase的學習,我們應該重點掌握execSQL()和rawQuery()方法。execSQL()方法可以執行insert、delete、update和CREATE TABLE之類有更改行為的SQL語句; rawQuery()方法用於執行select語句。
execSQL()方法的使用例子:
復制代碼 代碼如下:

SQLiteDatabase db = ....;
db.execSQL("insert into person(name, age) values('林計欽', 24)");
db.close();

執行上面SQL語句會往person表中添加進一條記錄,在實際應用中, 語句中的「林計欽」這些參數值會由用戶輸入界面提供,如果把用戶輸入的內容原樣組拼到上面的insert語句, 當用戶輸入的內容含有單引號時,組拼出來的SQL語句就會存在語法錯誤。要解決這個問題需要對單引號進行轉義,也就是把單引號轉換成兩個單引號。有些時候用戶往往還會輸入像「 & 」這些特殊SQL符號,為保證組拼好的SQL語句語法正確,必須對SQL語句中的這些特殊SQL符號都進行轉義,顯然,對每條SQL語句都做這樣的處理工作是比較煩瑣的。 SQLiteDatabase類提供了一個重載後的execSQL(String sql, Object[] bindArgs)方法,使用這個方法可以解決前面提到的問題,因為這個方法支持使用佔位符參數(?)。使用例子如下:
復制代碼 代碼如下:

SQLiteDatabase db = ....;
db.execSQL("insert into person(name, age) values(?,?)", new Object[]{"傳智播客", 4});
db.close();

execSQL(String sql, Object[] bindArgs)方法的第一個參數為SQL語句,第二個參數為SQL語句中佔位符參數的值,參數值在數組中的順序要和佔位符的位置對應。
SQLiteDatabase的rawQuery()用於執行select語句,使用例子如下:
復制代碼 代碼如下:

SQLiteDatabase db = ....;
Cursor cursor = db.rawQuery("select * from person", null);
while (cursor.moveToNext()) {
int personid = cursor.getInt(0); //獲取第一列的值,第一列的索引從0開始
String name = cursor.getString(1);//獲取第二列的值
int age = cursor.getInt(2);//獲取第三列的值
}
cursor.close();
db.close();

rawQuery()方法的第一個參數為select語句;第二個參數為select語句中佔位符參數的值,如果select語句沒有使用佔位符,該參數可以設置為null。帶佔位符參數的select語句使用例子如下:
復制代碼 代碼如下:

Cursor cursor = db.rawQuery("select * from person where name like ? and age=?", new String[]{"%林計欽%", "4"});

Cursor是結果集游標,用於對結果集進行隨機訪問,如果大家熟悉jdbc, 其實Cursor與JDBC中的ResultSet作用很相似。使用moveToNext()方法可以將游標從當前行移動到下一行,如果已經移過了結果集的最後一行,返回結果為false,否則為true。另外Cursor 還有常用的moveToPrevious()方法(用於將游標從當前行移動到上一行,如果已經移過了結果集的第一行,返回值為false,否則為true )、moveToFirst()方法(用於將游標移動到結果集的第一行,如果結果集為空,返回值為false,否則為true )和moveToLast()方法(用於將游標移動到結果集的最後一行,如果結果集為空,返回值為false,否則為true ) 。

除了前面給大家介紹的execSQL()和rawQuery()方法, SQLiteDatabase還專門提供了對應於添加、刪除、更新、查詢的操作方法: insert()、delete()、update()和query() 。這些方法實際上是給那些不太了解SQL語法的菜鳥使用的,對於熟悉SQL語法的程序員而言,直接使用execSQL()和rawQuery()方法執行SQL語句就能完成數據的添加、刪除、更新、查詢操作。

『玖』 Android資料庫SQLiteDatabase的update方法,whereClause參數怎麼添加多個條件

1. ACID事務

2. 零配置 – 無需安裝和管理配置

3.儲存在單一磁碟文件中的一個完整的資料庫

4.資料庫文件可以在不同位元組順序的機器間自由的共享

5.支持資料庫大小至2TB

6. 足夠小, 大致13萬行C代碼, 4.43M

7. 比一些流行的資料庫在大部分普通資料庫操作要快

8. 簡單, 輕松的API

9. 包含TCL綁定, 同時通過Wrapper支持其他語言的綁定

10. 良好注釋的源代碼, 並且有著90%以上的測試覆蓋率

11. 獨立: 沒有額外依賴

12. 源碼完全的開源, 你可以用於任何用途, 包括出售它

13. 支持多種開發語言,C, C++, PHP, Perl, Java, C#,Python, Ruby等

SQLite雖然很小巧,但是支持的SQL語句不會遜色於其他開源資料庫,它支持的SQL包括:

ATTACH DATABASE

BEGIN TRANSACTION

comment

COMMIT TRANSACTION

COPY

CREATE INDEX

CREATE TABLE

CREATE TRIGGER

CREATE VIEW

DELETE

DETACH DATABASE

DROP INDEX

DROP TABLE

DROP TRIGGER

DROP VIEW

END TRANSACTION

EXPLAIN

expression

INSERT

ON CONFLICT clause

PRAGMA

REPLACE

ROLLBACK TRANSACTION

SELECT

UPDATE

同時它還支持事務處理功能等等。也有人說它象Microsoft的Access,有時候真的覺得有點象,但是事實上它們區別很大。比如SQLite 支持跨平台,操作簡單,能夠使用很多語言直接創建資料庫,而不象Access一樣需要Office的支持。如果你是個很小型的應用,或者你想做嵌入式開發,沒有合適的資料庫系統,那麼你可以考慮使用SQLite。到2013年10月17日最新版本是 3.8.1 。能在上面獲得源代碼和文檔。同時因為資料庫結構簡單,系統源代碼也不是很多,也適合想研究資料庫系統開發的專業人士.

閱讀全文

與android資料庫update相關的資料

熱點內容
域名與ip地址通過什麼伺服器查 瀏覽:93
企業網站需要什麼雲伺服器配置 瀏覽:909
遼事通伺服器出現錯誤是什麼原因 瀏覽:763
能否將一個表格的子表加密 瀏覽:61
手機ios微信收藏怎麼加密 瀏覽:591
安卓如何改黑色 瀏覽:328
oracle資料庫導出命令 瀏覽:696
用python做鍾表盤 瀏覽:871
腰椎壓縮性骨折吧 瀏覽:324
安卓怎麼把軟體改成火影忍者 瀏覽:702
手機如何切換軟體商店伺服器 瀏覽:325
江蘇省python二級題型 瀏覽:231
文件編譯器在哪 瀏覽:28
選擇目錄時此電腦的文件夾怎麼刪 瀏覽:25
狗狗幣加密支付服務 瀏覽:897
怎麼使用指南針APP確定方向 瀏覽:372
php讀取圖片並輸出 瀏覽:321
如何組合多個pdf文件 瀏覽:669
工作表格excel取消加密 瀏覽:133
真空壓縮袋手泵怎麼用 瀏覽:427