十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
android是有自帶的類庫(kù)的:sqliteopenhelper,使用的時(shí)候繼承這個(gè)類,然后寫(xiě)邏輯就可以,一般使用單例模式:
創(chuàng)新互聯(lián)建站為客戶提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開(kāi)發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站程序開(kāi)發(fā)、WEB系統(tǒng)開(kāi)發(fā)、微信二次開(kāi)發(fā)、移動(dòng)網(wǎng)站建設(shè)等網(wǎng)站方面業(yè)務(wù)。
public
synchronized
static
dbhelper
getdbhelper(context
context)
{
if
(helper
==
null)
{
helper
=
new
dbhelper(context);
}
return
helper;
}
private
dbhelper(context
context)
{
super(context,
"自己的數(shù)據(jù)庫(kù)名",
null,
數(shù)據(jù)庫(kù)版本);
}
使用的時(shí)候也很簡(jiǎn)單,下面是一個(gè)刪除操作:
public
synchronized
void
deletesite(string
packname)
{
sqlitedatabase
db
=
getwritabledatabase();
try
{
db.begintransaction();
db.delete("site",
"packname=?",
new
string[]
{
packname
});
db.settransactionsuccessful();
}
finally
{
db.endtransaction();
if
(db
!=
null)
{
}
}
}
select * from tableName where id = '1';唯一特定的字段來(lái)確定一條記錄。
結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)簡(jiǎn)稱SQL(發(fā)音:/?es
kju? ?el/ "S-Q-L"),是一種特殊目的的編程語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng);同時(shí)也是數(shù)據(jù)庫(kù)腳本文件的擴(kuò)展名。
結(jié)構(gòu)化查詢語(yǔ)言是高級(jí)的非過(guò)程化編程語(yǔ)言,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對(duì)數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫(kù)系統(tǒng),
可以使用相同的結(jié)構(gòu)化查詢語(yǔ)言作為數(shù)據(jù)輸入與管理的接口。結(jié)構(gòu)化查詢語(yǔ)言語(yǔ)句可以嵌套,這使它具有極大的靈活性和強(qiáng)大的功能。
android讀取數(shù)據(jù)庫(kù)可以使用sqlite一些api進(jìn)行讀取,實(shí)例如下:
/**
*
查找一條數(shù)據(jù)
*
@param
uid
*/
public
user
find(integer
uid){
sqlitedatabase
db=dbopenhelper.getreadabledatabase();
//創(chuàng)建數(shù)據(jù)庫(kù)輔助類
cursor
cursor
=db.rawquery("select
*
from
user
where
uid=?",
new
string[]{uid.tostring()});
//創(chuàng)建一個(gè)游標(biāo)
if(cursor.movetofirst()){
//循環(huán)遍歷查找數(shù)組
int
uid2=cursor.getint(cursor.getcolumnindex("uid"));
string
uname=cursor.getstring(cursor.getcolumnindex("uname"));
string
uaddress=cursor.getstring(cursor.getcolumnindex("uaddress"));
user
user=new
user();
user.setuid(uid2);
user.setuname(uname);
user.setuaddress(uaddress);
return
user;
}
cursor.close();
return
null;
}
其實(shí)最傳統(tǒng)的查詢數(shù)據(jù)的方式當(dāng)然是使用SQL語(yǔ)句了,Android當(dāng)中也提供了直接使用原生SQL語(yǔ)句來(lái)查詢數(shù)據(jù)庫(kù)表的方法,即SQLiteDatabase中的rawQuery()方法,方法定義如下:publicCursorrawQuery(Stringsql,String[]selectionArgs)其中,rawQuery()方法接收兩個(gè)參數(shù),第一個(gè)參數(shù)接收的就是一個(gè)SQL字符串,第二個(gè)參數(shù)是用于替換SQL語(yǔ)句中占位符(?)的字符串?dāng)?shù)組。rawQuery()方法返回一個(gè)Cursor對(duì)象,所有查詢到的數(shù)據(jù)都是封閉在這個(gè)對(duì)象當(dāng)中的,我們只要一一取出就可以了。