數(shù)據(jù)庫

--創(chuàng)建表? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 主鍵

create table student(id integer PRIMARY KEY AUTOINCREMENT ,name varchar(20),age integer )

--主鍵??PRIMARY KEY

--自動(dòng)增長??AUTOINCREMENT

--刪除表

drop table student

--修改表的結(jié)構(gòu)

alter table student add sex varchar(20)

--添加數(shù)據(jù)

insert into student (name,age) values ('shadan',18)

insert into student (name,age) values ('shabi',25)

--刪除記錄(where 條件)

--delete from student???全部刪除

delete from student where name='shabi'

Android對(duì)象刪除??SQLiteDatabase db = getWritableDatabase();

db.delete("TimeRecordTB", "Date = ?", new String[]{date});//由于date的數(shù)據(jù)中有空格 ,所有不能用sql的語句

db.close();

--修改(把shabi改為sibi)

update??student set name='sibi', age=58 where name='shadan'????(這是SQL語句修改)

Android對(duì)象用id修改name SQLiteDatabase db = getWritableDatabase();

ContentValues values = new ContentValues();

values.put("DisplayName",??contacts.getName());??db.update("ContactTB", values,"Id=?",new String[]{id});

--查詢(*所以的字段)

select * from student

--查詢多個(gè)字段

select name,age from student

--查詢年齡為25的人

select * from student where age=18

--查詢年齡25??name=shabi

select * from student where age=25 and name='shabi'

- 倒序讀取??"select * from 表名 order by id desc"

- 讀取所有???"select * from 表名"

- 刪除所有??"delete from 表名"

- 刪除??????"delete from 表名 where 標(biāo)識(shí)字段 = %s" 如果表標(biāo)識(shí)字段中有空格,不能用語句來刪除,用Android的數(shù)據(jù)庫對(duì)象刪

- 修改???????"update 表名 set 被修改的字段=修改后的結(jié)果 where??標(biāo)識(shí)字段 = %s"

- 類型一定要轉(zhuǎn)成string類型保存

- false true是關(guān)鍵字 修改的時(shí)候要用 "\"" +false+"\""轉(zhuǎn)成string

-

@Override

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

for (int i = oldVersion; i < newVersion; i++) {

switch (i) {

case 1:

onUpgradeToVersion2(db);

break;

case 2:

//????????????????????onUpgradeToVersion3(db);

break;

case 3:

//????????????????????onUpgradeToVersion4(db);

break;

case 4:

//????????????????????onUpgradeToVersion5(db);

break;

case 5:

//????????????????????onUpgradeToVersion6(db);

break;

}}}

@Override

public void onCreate(SQLiteDatabase db) {

/*

"create table if not exists 表的名字"

+"(Id integer primary key autoincrement," //id是自動(dòng)增長的

+"字段名 varchar,"

+"字段名 varchar)";

*/

String Contact = "create table if not exists ContactTB"

+ "(Id integer primary key autoincrement,"

+ "DisplayName varchar,"

+ "Number varchar,"

+ "Server varchar)";

db.execSQL(Contact);

//數(shù)據(jù)庫更新版本

onUpgradeToVersion2(db);

}



private void onUpgradeToVersion3(SQLiteDatabase db) {

//表末添加尾字段

String Wang_1 = "ALTER TABLE WangchangTB ADD COLUMN Heheda VARCHAR";

String Wang_2 = "ALTER TABLE MeetingRoomTB ADD COLUMN Hehedani VARCHAR";

db.execSQL(Wang_1);

db.execSQL(Wang_2);

}

private void onUpgradeToVersion6(SQLiteDatabase db) {

//刪除表

String s6 = "drop table if exists WangchangTB";

db.execSQL(s6);

}

private void onUpgradeToVersion5(SQLiteDatabase db) {

//表刪除字段時(shí),先根據(jù)原來的表創(chuàng)建一個(gè)臨時(shí)的表(比原來的表少一個(gè)要?jiǎng)h除的字段),并復(fù)制數(shù)據(jù)

//刪除原來的表

//將臨時(shí)的表名稱改為原來的表

String wang5 = "create table MeetingRoomTBtow as select Id,RoomNumber,Compere,RoomMembers,MeetState from MeetingRoomTB";

String s1 = "drop table if exists MeetingRoomTB";

String s2 = "alter table MeetingRoomTBtow rename to MeetingRoomTB";

db.execSQL(wang5);

db.execSQL(s1);

db.execSQL(s2);

}

private void onUpgradeToVersion2(SQLiteDatabase db) {

//創(chuàng)建表,參會(huì)者的信息

String Attendance = "create table if not exists AttendanceTB"

+ "(Id integer primary key autoincrement,"

+ "meetNumber varchar,"

+ "name varchar,"

+ "isSpeaker varchar,"

+ "isOpenMicrophone varchar,"

+ "isOpenCamera varchar,"

+ "type varchar)";

db.execSQL(Attendance);

}

-數(shù)據(jù)庫的操作


/*

增 ....這里的類型一定要轉(zhuǎn)成string類型

*/

public synchronized??boolean addAttendance2db(AttendanceInfo attendanceInfo){

SQLiteDatabase db = getWritableDatabase();

ContentValues values = new ContentValues();

values.put("meetNumber", attendanceInfo.getMeetNumber());

values.put("name", attendanceInfo.getName());

values.put("isSpeaker", attendanceInfo.isSpeaker()+"");

values.put("isOpenCamera", attendanceInfo.isOpenCamera()+"");

values.put("type", attendanceInfo.isType()+"");

values.put("isOpenMicrophone", attendanceInfo.isOpenMicrophone()+"");

try {

db.insert("AttendanceTB", null, values);

} catch (Exception e) {

e.printStackTrace();

return false;

}finally {

db.close();

}

return true;

}

//增加整個(gè)集合

public synchronized boolean addAttendance2db(List list) {

SQLiteDatabase db = getWritableDatabase();

ContentValues values = new ContentValues();

try {

for(AttendanceInfo attendanceInfo : list) {

values.put("meetNumber", attendanceInfo.getMeetNumber());

values.put("name", attendanceInfo.getName());

values.put("isSpeaker", attendanceInfo.isSpeaker()+"");

values.put("isOpenCamera", attendanceInfo.isOpenCamera()+"");

values.put("type", attendanceInfo.isType()+"");

values.put("isOpenMicrophone", attendanceInfo.isOpenMicrophone()+"");

db.insert("AttendanceTB", null, values);

}

} catch (Exception e) {

e.printStackTrace();

return false;

}finally {

db.close();

}

return true;

}

/**

* 刪除參會(huì)者

*/

public synchronized boolean deleteAttendance2db(String number){

SQLiteDatabase db = getWritableDatabase();

try {

String sql = String.format("delete from AttendanceTB where name = %s", number);

db.execSQL(sql);

} catch (Exception e) {

e.printStackTrace();

return false;

} finally {

db.close();

}

return true;

}

/**

* 刪除所有

*/

public synchronized boolean deleteAttendance2db(){

SQLiteDatabase db = getWritableDatabase();

try {

String sql = String.format("delete from AttendanceTB ");

db.execSQL(sql);

} catch (Exception e) {

e.printStackTrace();

return false;

} finally {

db.close();

}

return true;

}

//改

public synchronized boolean setMeetContactsInfo(MeetContacts contacts) {

SQLiteDatabase db = getWritableDatabase();

try {

String sql = String.format("update MeetContactsTB set State="+contacts.getStateTemp()+" where ContactsId="+contacts.getId());

db.execSQL(sql);

} catch (Exception e) {

e.printStackTrace();

return false;

} finally {

db.close();

}

//通知局部刷新

SMUIManager.instance().sendMessage(NotifyMessage.NOTIFY_ITEM_RANGE_CHANGED_CONTACTS, null);

return true;

}

/*

*根據(jù)聯(lián)系人號(hào)碼,查詢聯(lián)系人

*/

public synchronized MeetContacts findMeetContactInfo(String numberID) {

SQLiteDatabase db = getReadableDatabase();

Cursor cursor = null;

try {

String sql = String.format(Locale.getDefault(), "select * from MeetContactsTB where ContactsId="+numberID);

cursor = db.rawQuery(sql, null);

while (cursor.moveToNext()) {

MeetContacts meetContacts = new MeetContacts();

meetContacts.setName(cursor.getString(cursor.getColumnIndex("Name")));

meetContacts.setId(cursor.getString(cursor.getColumnIndex("ContactsId")));

return meetContacts;

}

} catch (Exception e) {

e.printStackTrace();

return null;

} finally {

try {

cursor.close();

} catch (Exception e) {

e.printStackTrace();

}

try {

db.close();

} catch (Exception e) {

e.printStackTrace();

}

}

return null;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末患蹂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌况脆,老刑警劉巖饭宾,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異格了,居然都是意外死亡看铆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門盛末,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弹惦,“玉大人,你說我怎么就攤上這事悄但√囊” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵檐嚣,是天一觀的道長助泽。 經(jīng)常有香客問我,道長嚎京,這世上最難降的妖魔是什么嗡贺? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮鞍帝,結(jié)果婚禮上诫睬,老公的妹妹穿的比我還像新娘。我一直安慰自己帕涌,他們只是感情好摄凡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蚓曼,像睡著了一般亲澡。 火紅的嫁衣襯著肌膚如雪令宿。 梳的紋絲不亂的頭發(fā)上跳座,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天胚鸯,我揣著相機(jī)與錄音壁畸,去河邊找鬼絮吵。 笑死虱咧,一個(gè)胖子當(dāng)著我的面吹牛否彩,可吹牛的內(nèi)容都是我干的舒帮。 我是一名探鬼主播瑞凑,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼末秃,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了籽御?” 一聲冷哼從身側(cè)響起练慕,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤惰匙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后铃将,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體项鬼,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年劲阎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绘盟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡悯仙,死狀恐怖龄毡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锡垄,我是刑警寧澤沦零,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站货岭,受9級(jí)特大地震影響路操,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茴她,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一寻拂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丈牢,春花似錦、人聲如沸瞄沙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽距境。三九已至申尼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間垫桂,已是汗流浹背师幕。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诬滩,地道東北人霹粥。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像疼鸟,于是被迫代替她去往敵國和親后控。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容