日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
【教程】如何在安卓系統(tǒng)中操作數(shù)據(jù)庫(kù) (安卓操作數(shù)據(jù)庫(kù))

隨著智能手機(jī)的普及,越來(lái)越多的應(yīng)用程序需要使用數(shù)據(jù)存儲(chǔ),而數(shù)據(jù)庫(kù)成為了存儲(chǔ)數(shù)據(jù)的重要手段之一。在安卓系統(tǒng)中,我們可以使用SQLite數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)存儲(chǔ)和操作。本文將為大家介紹如何在安卓系統(tǒng)中操作數(shù)據(jù)庫(kù)。

為萬(wàn)安等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及萬(wàn)安網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、萬(wàn)安網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

1.創(chuàng)建數(shù)據(jù)庫(kù)

在安卓系統(tǒng)中創(chuàng)建數(shù)據(jù)庫(kù)有多種方式,其中最常用的方式是在應(yīng)用程序的MnActivity類中創(chuàng)建。在MnActivity中創(chuàng)建數(shù)據(jù)庫(kù)要分為兩個(gè)步驟:在onCreate方法中創(chuàng)建數(shù)據(jù)庫(kù),并在onUpgrade方法中更新數(shù)據(jù)庫(kù)。

(1)在onCreate方法中創(chuàng)建數(shù)據(jù)庫(kù)

“`java

public class MnActivity extends AppCompatActivity {

private static final String DB_NAME=”mydb”; //數(shù)據(jù)庫(kù)名稱

private static final int DB_VERSION=1; //數(shù)據(jù)庫(kù)版本號(hào)

private SQLiteDatabase db;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_mn);

}

private void createDatabase() {

DBHelper dbHelper = new DBHelper(this,DB_NAME,null,DB_VERSION);

db=dbHelper.getWritableDatabase();

}

}

“`

在以上代碼中,我們創(chuàng)建了一個(gè)DBHelper類用于繼承SQLiteOpenHelper類,然后重寫(xiě)onCreate方法,在該方法中創(chuàng)建數(shù)據(jù)庫(kù)并返回一個(gè)可寫(xiě)的數(shù)據(jù)庫(kù)對(duì)象。

DBHelper類的實(shí)現(xiàn)如下:

“`java

public class DBHelper extends SQLiteOpenHelper {

private static final String CREATE_TABLE_SQL=”CREATE TABLE Person(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)”;

public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {

super(context, name, factory, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(CREATE_TABLE_SQL);

}

@Override

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

}

}

“`

在以上代碼中,我們定義了一個(gè)CREATE_TABLE_SQL語(yǔ)句用于創(chuàng)建一個(gè)Person表,該表有三個(gè)字段:_id、name和age。

(2)在onUpgrade方法中更新數(shù)據(jù)庫(kù)

有時(shí)候,我們需要更新數(shù)據(jù)庫(kù),比如添加新的表或字段等。此時(shí),我們需要在DBHelper中重寫(xiě)onUpgrade方法,在該方法中執(zhí)行更新操作。

“`java

public class DBHelper extends SQLiteOpenHelper {

private static final String CREATE_TABLE_SQL=”CREATE TABLE Person(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)”;

private static final String ALTER_TABLE_SQL=”ALTER TABLE Person ADD COLUMN address TEXT”;

public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {

super(context, name, factory, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(CREATE_TABLE_SQL);

}

@Override

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

if(oldVersion

db.execSQL(ALTER_TABLE_SQL);

}

}

}

“`

在以上代碼中,我們定義了一個(gè)ALTER_TABLE_SQL語(yǔ)句用于在Person表中添加一個(gè)address字段,在onUpgrade方法中判斷如果當(dāng)前版本低于2,則執(zhí)行該更新操作。

2.向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)

插入數(shù)據(jù)是數(shù)據(jù)庫(kù)操作中的重要環(huán)節(jié)之一,在安卓系統(tǒng)中插入數(shù)據(jù)有多種方式,其中最常用的方式是使用ContentValues類。

“`java

private void insertData(){

ContentValues values=new ContentValues();

values.put(“name”,”Tom”);

values.put(“age”,18);

db.insert(“Person”,null,values);

}

“`

在以上代碼中,我們創(chuàng)建了一個(gè)ContentValues對(duì)象,并向其中添加了兩個(gè)字段:name和age,然后將該對(duì)象作為參數(shù)調(diào)用db的insert方法,將數(shù)據(jù)插入到名為Person的表中。如果在表中定義了自增長(zhǎng)字段,我們可以不用指定該字段的值,系統(tǒng)會(huì)自動(dòng)生成。

3.查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)

查詢操作是數(shù)據(jù)庫(kù)操作中另一個(gè)重要的環(huán)節(jié),我們?cè)诎沧肯到y(tǒng)中查詢數(shù)據(jù)庫(kù)中的數(shù)據(jù)也有多種方式,比如查詢表中的所有數(shù)據(jù)和查詢特定數(shù)據(jù)等。

(1)查詢表中的所有數(shù)據(jù)

“`java

private void queryAllData(){

Cursor cursor=db.query(“Person”,null,null,null,null,null,null);

if(cursor.moveToFirst()){

do{

int id=cursor.getInt(cursor.getColumnIndex(“_id”));

String name=cursor.getString(cursor.getColumnIndex(“name”));

int age=cursor.getInt(cursor.getColumnIndex(“age”));

Log.d(“MnActivity”,”id=”+id+”,name=”+name+”,age=”+age);

}while(cursor.moveToNext());

}

cursor.close();

}

“`

在以上代碼中,我們先調(diào)用db的query方法查詢Person表中的所有數(shù)據(jù),然后通過(guò)Cursor類遍歷查詢結(jié)果,最后取出每個(gè)字段的值并輸出到Log中。

(2)查詢特定數(shù)據(jù)

“`java

private void queryData(){

Cursor cursor=db.query(“Person”,null,”name=?”,new String[]{“Tom”},null,null,null);

if(cursor.moveToFirst()){

do{

int id=cursor.getInt(cursor.getColumnIndex(“_id”));

String name=cursor.getString(cursor.getColumnIndex(“name”));

int age=cursor.getInt(cursor.getColumnIndex(“age”));

Log.d(“MnActivity”,”id=”+id+”,name=”+name+”,age=”+age);

}while(cursor.moveToNext());

}

cursor.close();

}

“`

在以上代碼中,我們調(diào)用db的query方法查詢Person表中name字段等于Tom的數(shù)據(jù),其他參數(shù)的用法與查詢所有數(shù)據(jù)時(shí)相同。

4.更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)

更新操作是數(shù)據(jù)庫(kù)操作中的另一個(gè)重要環(huán)節(jié)之一,在安卓系統(tǒng)中更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)也有多種方式,比如更新特定數(shù)據(jù)等。

“`java

private void updateData(){

ContentValues values=new ContentValues();

values.put(“age”,20);

db.update(“Person”,values,”name=?”,new String[]{“Tom”});

}

“`

在以上代碼中,我們創(chuàng)建了一個(gè)ContentValues對(duì)象,并向其中添加了一個(gè)字段:age,然后調(diào)用db的update方法將名為Person的表中name字段等于Tom的數(shù)據(jù)的age字段值更新為20。

5.刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)

刪除操作也是數(shù)據(jù)庫(kù)操作中的重要環(huán)節(jié)之一,在安卓系統(tǒng)中刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)也有多種方式,比如刪除特定數(shù)據(jù)等。

“`java

private void deleteData(){

db.delete(“Person”,”name=?”,new String[]{“Tom”});

}

“`

在以上代碼中,我們調(diào)用db的delete方法,將名為Person的表中name字段等于Tom的數(shù)據(jù)刪除。

本文為大家介紹了如何在安卓系統(tǒng)中操作數(shù)據(jù)庫(kù),包括創(chuàng)建數(shù)據(jù)庫(kù)、插入數(shù)據(jù)、查詢數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)等方面,讀者可以根據(jù)自己的需要選擇合適的方法進(jìn)行操作,從而達(dá)到存儲(chǔ)和讀取數(shù)據(jù)的目的。希望讀者在閱讀本文后能夠了解并掌握安卓系統(tǒng)中操作數(shù)據(jù)庫(kù)的方法。

相關(guān)問(wèn)題拓展閱讀:

  • 安卓連接數(shù)據(jù)庫(kù)問(wèn)題,求解

安卓連接數(shù)據(jù)庫(kù)問(wèn)題,求解

android的系統(tǒng)數(shù)據(jù)庫(kù)在調(diào)用的時(shí)候都封裝了 我們只需要寫(xiě)where的condition,表結(jié)構(gòu)和標(biāo)明對(duì)我們都是不透明的 這就對(duì)深入了解帶來(lái)了很多麻煩,即使有源碼查看起來(lái)也很費(fèi)勁。

android使用的是sqlite數(shù)據(jù)庫(kù),一般都是每個(gè)模塊都有一個(gè).db文件,我們可以將系統(tǒng)里的.db文件拷出來(lái)在使用android tool中的sqlite3命令來(lái)操作和測(cè)試數(shù)據(jù)庫(kù)。

首先啟動(dòng)模擬器或?qū)⑹謾C(jī)連接電腦

使用find命令將系統(tǒng)中所有的db文件找出來(lái)

adb shell find / -name ‘*.db’ -type f

/mnt/sdcard/openfeint/webui/manifest.db

/mnt/sdcard/dbms/DBMS.db

/data/system/accounts.db

/data/data/com.android.vending/databases/assets14.db

/data/data/com.android.vending/databases/suggestions.db

/data/data/com.android.vending/databases/webviewCache.db

/data/data/com.android.vending/databases/webview.db

/data/data/com.android.vending/databases/billing4.db

/data/data/com.android.providers.userdictionary/databases/user_dict.db

/data/data/com.android.providers.telephony/databases/mmss.db

/data/data/com.android.providers.telephony/databases/telephony.db

/data/data/com.android.providers.settings/databases/改磨settings.db

/data/data/com.android.providers.media/databases/internal.db

/data/data/com.android.providers.media/databases/external-bd717cb2.db

/data/data/com.android.providers.media/databases/external-5c2507fe.db

/data/data/com.android.launcher/databases/launcher.db

/data/data/com.example.android.apis/databases/webviewCache.db

/data/data/com.example.android.apis/databases/webview.db

/data/data/com.eclipsim.gpsstatus2/databases/google_ytics.db

/data/data/com.eclipsim.gpsstatus2/databases/webviewCache.db

/肆殲嘩data/data/com.eclipsim.gpsstatus2/databases/webview.db

/data/data/com.android.inputmethod.latin/databases/userbigram_dict.db

/data/data/com.android.inputmethod.latin/databases/auto_dict.db

/data/data/com.google.android.gsf/databases/talk.db

/data/data/裂行com.google.android.gsf/databases/webviewCache.db

/data/data/com.google.android.gsf/databases/webview.db

/data/data/com.google.android.gsf/databases/googlesettings.db

/data/data/com.google.android.gsf/databases/subscribedfeeds.db

/data/data/com.google.android.gsf/databases/gservices.db

/data/data/com.google.android.gsf/databases/gls.db

/data/data/com.google.android.googlequicksearchbox/databases/q-log.db

/data/data/com.google.android.gm/databases/downloads.db

/data/data/com.google.android.gm/databases/gmail.db

/data/data/com.google.android.apps.genie.geniewidget/databases/weather.db

/data/data/com.cooliris.media/databases/launcher.db

/data/data/com.cooliris.media/databases/picasa.db

/data/data/com.android.email/databases/EmailProviderBody.db

/data/data/com.android.email/databases/EmailProvider.db

/data/data/com.android.providers.drm/databases/drm.db

/data/data/com.getsetgames.megajump/databases/google_ytics.db

/data/data/com.getsetgames.megajump/databases/webviewCache.db

/data/data/com.getsetgames.megajump/databases/webview.db

/data/data/com.android.providers.downloads/databases/downloads.db

/data/data/com.rich.webviewtest/databases/webviewCache.db

/data/data/com.rich.webviewtest/databases/webview.db

/data/data/com.android.deskclock/databases/alarms.db

/data/data/com.android.providers.contacts/databases/contacts2.db

/data/data/com.android.providers.calendar/databases/calendar.db

/data/data/com.android.browser/app_icons/WebpageIcons.db

/data/data/com.android.browser/app_geolocation/CachedGeoposition.db

/data/data/com.android.browser/app_databases/Databases.db

/data/data/com.android.browser/app_appcache/ApplicationCache.db

/data/data/com.android.browser/databases/browser.db

/data/data/com.android.browser/databases/webviewCache.db

/data/data/com.android.browser/databases/webview.db

/data/data/com.android.bluetooth/databases/btopp.db

有了個(gè)db文件列表我們就可以把這些db 復(fù)制到電腦上進(jìn)行操作了

以通訊錄數(shù)據(jù)庫(kù)為例執(zhí)行以下操作:

adb pull /data/data/com.android.providers.contacts/databases/contacts2.db F:/androidres/systemdb

KB/s (bytes in 0.158s)

F:/androidres/systemdb為任意本地目錄 不明白pull命令的查看adb help

用sqlite3打開(kāi)這個(gè)文件

F:/androidres/systemdb>sqlite3 contacts2.db

SQLite version 3.6.22

Enter “.help” for instructions

Enter SQL statements terminated with a “;”

sqlite> .tables

_sync_statesettings

_sync_state_metadatastatus_updates

accountsv1_settings

activitiesview_contacts

agg_exceptions view_contacts_restricted

android_metadata view_data

calls view_data_restricted

contact_entities_viewview_groups

contact_entities_view_restricted view_raw_contacts

contactsview_raw_contacts_restricted

data view_v1_contact_methods

groupsview_v1_extensions

mimetypesview_v1_group_membership

name_lookupview_v1_groups

nickname_lookup view_v1_organizations

packagesview_v1_people

phone_lookupview_v1_phones

propertiesview_v1_photos

raw_contacts

安卓操作數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于安卓操作數(shù)據(jù)庫(kù),【教程】如何在安卓系統(tǒng)中操作數(shù)據(jù)庫(kù),安卓連接數(shù)據(jù)庫(kù)問(wèn)題,求解的信息別忘了在本站進(jìn)行查找喔。

成都網(wǎng)站營(yíng)銷推廣找創(chuàng)新互聯(lián),全國(guó)分站站群網(wǎng)站搭建更好做SEO營(yíng)銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價(jià)格厚道。提供成都服務(wù)器托管租用、綿陽(yáng)服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽(yáng)服務(wù)器機(jī)房服務(wù)器托管租用。


網(wǎng)頁(yè)題目:【教程】如何在安卓系統(tǒng)中操作數(shù)據(jù)庫(kù) (安卓操作數(shù)據(jù)庫(kù))
標(biāo)題URL:http://www.5511xx.com/article/cdggcco.html