新聞中心
隨著移動(dòng)互聯(lián)網(wǎng)時(shí)代的到來(lái),越來(lái)越多的應(yīng)用需要與服務(wù)器進(jìn)行數(shù)據(jù)交互和通信。而這種通信主要就是通過(guò)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)完成的。如何在Android平臺(tái)上使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)已經(jīng)成為了很多開(kāi)發(fā)者面臨的挑戰(zhàn)。

成都創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、新洲網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為新洲等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
在本文中,我們將會(huì)介紹如何在Android開(kāi)發(fā)中使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)。我們將會(huì)探討以下幾個(gè)方面:
1. 什么是網(wǎng)絡(luò)數(shù)據(jù)庫(kù)
2. Android中支持的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)類型
3. 如何連接網(wǎng)絡(luò)數(shù)據(jù)庫(kù)
4. 如何在Android應(yīng)用程序中使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)
1. 什么是網(wǎng)絡(luò)數(shù)據(jù)庫(kù)?
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)是一種客戶端與服務(wù)器之間進(jìn)行數(shù)據(jù)交互和通信的技術(shù)。通過(guò)網(wǎng)絡(luò)數(shù)據(jù)庫(kù),客戶端可以向服務(wù)器發(fā)送請(qǐng)求,以獲取、更新、插入或刪除數(shù)據(jù)。
網(wǎng)絡(luò)數(shù)據(jù)庫(kù)通常是由一個(gè)或多個(gè)服務(wù)器來(lái)管理,并且它們的設(shè)計(jì)和實(shí)現(xiàn)很大程度上取決于應(yīng)用程序的需求和服務(wù)器的性能。
2. Android中支持的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)類型
在Android開(kāi)發(fā)過(guò)程中,我們可以使用以下幾種網(wǎng)絡(luò)數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn)數(shù)據(jù)交互和通信:
SQLite:SQLite是一種輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù),其數(shù)據(jù)存儲(chǔ)在本地服務(wù)器上。在Android平臺(tái)上,它是默認(rèn)的數(shù)據(jù)庫(kù)引擎,并且包含在Android操作系統(tǒng)中。
MySQL:MySQL是一種廣泛使用的開(kāi)源關(guān)系型數(shù)據(jù)庫(kù),它可以在單獨(dú)的服務(wù)器上運(yùn)行,并且可以通過(guò)Java JDBC驅(qū)動(dòng)程序與Android應(yīng)用程序連接。
PostgreSQL:PostgreSQL是一種開(kāi)源的對(duì)象關(guān)系型數(shù)據(jù)庫(kù),它提供了許多高級(jí)功能,如事務(wù)控制、崩潰恢復(fù)和并發(fā)性控制。
Oracle:Oracle是一種商業(yè)級(jí)的關(guān)系型數(shù)據(jù)庫(kù),企業(yè)級(jí)應(yīng)用程序通常會(huì)使用Oracle來(lái)存儲(chǔ)和管理數(shù)據(jù)。Oracle數(shù)據(jù)庫(kù)可以通過(guò)Java JDBC驅(qū)動(dòng)程序與Android應(yīng)用程序連接。
3. 如何連接網(wǎng)絡(luò)數(shù)據(jù)庫(kù)
要使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù),在Android中需要進(jìn)行以下操作:
創(chuàng)建一個(gè)HTTP請(qǐng)求
使用HTTP請(qǐng)求的URL連接到服務(wù)器上的數(shù)據(jù)庫(kù)
將HTTP請(qǐng)求發(fā)送到服務(wù)器
服務(wù)器和客戶端之間進(jìn)行數(shù)據(jù)交互
以下是一個(gè)簡(jiǎn)單的代碼示例,說(shuō)明如何連接到MySQL數(shù)據(jù)庫(kù):
public class MnActivity extends Activity {
private static final String URL = “jdbc:mysql://localhost:3306/mydatabase”;
private static final String USERNAME = “myusername”;
private static final String PASSWORD = “mypassword”;
private Connection connection = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mn);
try {
Class.forName(“com.mysql.jdbc.Driver”);
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
4. 如何在Android應(yīng)用程序中使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)
在Android應(yīng)用程序中使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的一般步驟如下:
創(chuàng)建要連接的數(shù)據(jù)庫(kù)
使用數(shù)據(jù)庫(kù)連接到服務(wù)器
執(zhí)行數(shù)據(jù)查詢、插入、更新或刪除操作
關(guān)閉數(shù)據(jù)庫(kù)連接
以下是一個(gè)簡(jiǎn)單的代碼示例,說(shuō)明如何在Android應(yīng)用程序中使用SQLite數(shù)據(jù)庫(kù):
public class MnActivity extends Activity {
private SQLiteDatabase sqLiteDatabase = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mn);
try {
sqLiteDatabase = openOrCreateDatabase(“mydatabase”, MODE_PRIVATE, null);
sqLiteDatabase.execSQL(“CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)”);
ContentValues values = new ContentValues();
values.put(“name”, “myname”);
sqLiteDatabase.insert(“mytable”, null, values);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (sqLiteDatabase != null) {
sqLiteDatabase.close();
}
}
}
}
結(jié)論
在Android開(kāi)發(fā)中,使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)可以實(shí)現(xiàn)應(yīng)用程序與服務(wù)器的數(shù)據(jù)交互和通信。本文介紹了如何連接并使用不同類型的網(wǎng)絡(luò)數(shù)據(jù)庫(kù),包括SQLite、MySQL、PostgreSQL和Oracle。使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)可以讓您的應(yīng)用程序更加靈活和高效,并且為用戶提供更好的使用體驗(yàn)。
相關(guān)問(wèn)題拓展閱讀:
- 如何連接android數(shù)據(jù)庫(kù)
如何連接android數(shù)據(jù)庫(kù)
關(guān)系型數(shù)據(jù)庫(kù)SQLite3,它是一個(gè)支持SQL輕量級(jí)的嵌入式數(shù)據(jù)庫(kù),在嵌入式操作上有很廣泛的,WM采用的也是SQLite3
關(guān)于過(guò)于、原理方面的東西在這篇文章里不會(huì)畝基提到,但是如果你想能夠快速的學(xué)會(huì)操作SQLite3,那這就是你要找的文章!
首先,我們看一下api,所有數(shù)據(jù)庫(kù)相關(guān)的接口、類都在.database和android.database.sqlite兩個(gè)包下,雖然只有兩個(gè)包,但是如果你英文不好或是太懶的話也要迷茫一段時(shí)間,其實(shí),我們真正用的到的沒(méi)有幾個(gè)!
1、SQLiteOpenHelper (android.database.sqlite.SQLiteOpenHelper)
這是一個(gè)抽象類,關(guān)于抽象類我們都知道,如果要使用它,一定是繼承它!
這個(gè)類的方法很少,有一侍耐陵個(gè)構(gòu)造方法
SQLiteOpenHelper(android.content.Context context, java.lang.String name,android.database.sqlite.SQLiteDatabase.CursorFactory factory, int version);
參數(shù)不做過(guò)多的解釋,CursorFactory一般直接傳null就可以
public void onCreate(SQLiteDatabase db)
此方法在創(chuàng)建數(shù)據(jù)庫(kù)是被調(diào)用,所以,應(yīng)該把創(chuàng)建表的操作放到這個(gè)方法里面,一會(huì)兒在后面我們會(huì)再詳細(xì)的說(shuō)如何創(chuàng)建表
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
從方法名上我們就能知道這個(gè)方法是執(zhí)行更新的,沒(méi)錯(cuò),當(dāng)version改變是系統(tǒng)會(huì)調(diào)用這個(gè)方法,所以在這個(gè)方法里應(yīng)該執(zhí)行刪除現(xiàn)有表,然后手動(dòng)調(diào)用onCreate的操作
SQLiteDatabase getReadableDatabase()
可讀的SQLiteDatabase對(duì)象
SQLiteDatabase getWritableDatabase()
獲取可寫的SQLiteDatabase對(duì)象
2、SQLiteDatabase(android.database.sqlite.SQLiteDatabase)
關(guān)于老戚操作數(shù)據(jù)庫(kù)的工作(增、刪、查、改)都在這個(gè)類里
execSQL(sql)
執(zhí)行SQL語(yǔ)句,用這個(gè)方法+SQL語(yǔ)句可以非常方便的執(zhí)行增、刪、查、改
除此之外,Android還提供了功過(guò)方法實(shí)現(xiàn)增、刪、查、改
long insert(TABLE_NAME, null, contentValues)添加記錄
int delete(TABLE_NAME, where, whereValue)刪除記錄
int update(TABLE_NAME, contentValues, where, whereValue) 更新記錄
Cursor query(TABLE_NAME, null, null, null, null, null, null) 查詢記錄
除此之外,還有很多方法,如:beginTransaction()開(kāi)始事務(wù)、endTransaction()結(jié)束事務(wù)…有興趣的可以自己看api,這里就不多贅述了
3、Cursor(android.database.Cursor)
游標(biāo)(接口),這個(gè)很熟悉了吧,Cursor里的方法非常多,常用的有:
boolean moveToPosition(position)將指針移動(dòng)到某記錄
getColumnIndex(Contacts.People.NAME)按列名獲取id
int getCount()獲取記錄總數(shù)
boolean requery()重新查詢
boolean isAfterLast()指針是否在末尾
boolean isBeforeFirst()時(shí)候是開(kāi)始位置
boolean isFirst()是否是之一條記錄
boolean isLast()是否是最后一條記錄
boolean moveToFirst()、 boolean moveToLast()、 boolean moveToNext()同moveToPosition(position)
4、SimpleCursorAdapter(android.widget.SimpleCursorAdapter)
也許你會(huì)奇怪了,之前我還說(shuō)過(guò)關(guān)于數(shù)據(jù)庫(kù)的操作都在database和database.sqlite包下,為什么把一個(gè)Adapter放到這里,如果你用過(guò)Android的SQLite3,你一定會(huì)知道
,這是因?yàn)槲覀儗?duì)數(shù)據(jù)庫(kù)的操作會(huì)經(jīng)常跟列表聯(lián)系起來(lái)
經(jīng)常有朋友會(huì)在這出錯(cuò),但其實(shí)也很簡(jiǎn)單
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
this,
R.layout.list,
myCursor,
new String ,
new int);
my.setAdapter(adapter);
一共5個(gè)參數(shù),具體如下:
參數(shù)1:Content
參數(shù)2:布局
參數(shù)3:Cursor游標(biāo)對(duì)象
參數(shù)4:顯示的字段,傳入String
參數(shù)5:顯示字段使用的組件,傳入int,該數(shù)組中是TextView組件的id
到這里,關(guān)于數(shù)據(jù)庫(kù)的操作就結(jié)束了,但是到目前為止我只做了翻譯的工作,有些同學(xué)可能還是沒(méi)有掌握,放心,下面我們一起順著正常開(kāi)發(fā)的思路理清一下頭緒!
前面的只是幫沒(méi)做過(guò)的朋友做下普及,下面才是你真正需要的!
一、寫一個(gè)類繼承SQLiteOpenHelpe
public class DatabaseHelper extends SQLiteOpenHelper
構(gòu)造方法:
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
在onCreate方法里寫建表的操作
public void onCreate(SQLiteDatabase db) {
String sql = “CREATE TABLE tb_test (_id INTEGER DEFAULT ‘1’ NOT NULL PRIMARY KEY AUTOINCREMENT,class_jb TEXT NOT NULL,class_yj TEXT NOT NULL,title TEXT NOT NULL,content_yj TEXT NOT NULL)”;
db.execSQL(sql);//需要異常捕獲
}
在onUpgrade方法里刪除現(xiàn)有表,然后手動(dòng)調(diào)用onCtreate創(chuàng)建表
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = “drop table “+tbname;
db.execSQL(sql);
onCreate(db);
}
對(duì)表增、刪、查、改的方法,這里用的是SQLiteOpenHelper提供的方法,也可以用sql語(yǔ)句實(shí)現(xiàn),都是一樣的
關(guān)于獲取可讀/可寫SQLiteDatabase,我不說(shuō)大家也應(yīng)該會(huì)想到,只有查找才會(huì)用到可讀的SQLiteDatabase
/**
* 添加數(shù)據(jù)
*/
public long insert(String tname, int tage, String ttel){
SQLiteDatabase db= getWritableDatabase();//獲取可寫SQLiteDatabase對(duì)象
//ContentValues類似map,存入的是鍵值對(duì)
ContentValues contentValues = new ContentValues();
contentValues.put(“tname”, tname);
contentValues.put(“tage”, tage);
contentValues.put(“ttel”, ttel);
return db.insert(tbname, null, contentValues);
}
/**
* 刪除記錄
* @param _id
*/
public void delete(String _id){
SQLiteDatabase db= getWritableDatabase();
db.delete(tbname,
“_id=?”,
new String);
}
/**
* 更新記錄的,跟插入的很像
*/
public void update(String _id,String tname, int tage, String ttel){
SQLiteDatabase db= getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(“tname”, tname);
contentValues.put(“tage”, tage);
contentValues.put(“ttel”, ttel);
db.update(tbname, contentValues,
“_id=?”,
new String);
}
/**
* 查詢所有數(shù)據(jù)
* @return Cursor
*/
public Cursor select(){
SQLiteDatabase db = getReadableDatabase();
return db.query(
tbname,
new String,
null,
null, null, null, “_id desc”);
}
關(guān)于db.query方法的參數(shù),有很多,為了防止大家弄亂,我簡(jiǎn)單說(shuō)一下
參數(shù)1:表名
參數(shù)2:返回?cái)?shù)據(jù)包含的列信息,String數(shù)組里放的都是列名
參數(shù)3:相當(dāng)于sql里的where,sql里where后寫的內(nèi)容放到這就行了,例如:tage>?
參數(shù)4:如果你在參數(shù)3里寫了?(知道我為什么寫tage>?了吧),那個(gè)這里就是代替?的值 接上例:new String
參數(shù)5:分組,不解釋了,不想分組就傳null
參數(shù)6:having,想不起來(lái)的看看SQL
參數(shù)7:orderBy排序
到這里,你已經(jīng)完成了最多的之一步!我們來(lái)看看都用到了那些類:
SQLiteOpenHelper我們繼承使用的
SQLiteDatabase增刪查改都離不開(kāi)它,即使你直接用sql語(yǔ)句,也要用到execSQL(sql)
二、這里無(wú)非是對(duì)DatabaseHelper類定義方法的調(diào)用,沒(méi)什么可說(shuō)的,不過(guò)我還是對(duì)查詢?cè)賴Z叨幾句吧
Android查詢出來(lái)的結(jié)果一Cursor形式返回
cursor = sqLiteHelper.select();//是不是很簡(jiǎn)單?
查詢出來(lái)的cursor一般會(huì)顯示在listView中,這就要用到剛才提到的SimpleCursorAdapter
SimpleCursorAdapter adapter = new SimpleCursorAdapter(
this,
R.layout.list_row,
cursor,
new String,
new int
);
里面帶有實(shí)例。自己好好學(xué)習(xí)吧!
android 網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于android 網(wǎng)絡(luò)數(shù)據(jù)庫(kù),Android如何使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)?,如何連接android數(shù)據(jù)庫(kù)的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務(wù),為您量身定制,歡迎來(lái)電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計(jì)、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計(jì)和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。
當(dāng)前文章:Android如何使用網(wǎng)絡(luò)數(shù)據(jù)庫(kù)?(android網(wǎng)絡(luò)數(shù)據(jù)庫(kù))
本文來(lái)源:http://www.5511xx.com/article/cdjecoc.html


咨詢
建站咨詢
