數據庫

--創建表? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 主鍵

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

--主鍵??PRIMARY KEY

--自動增長??AUTOINCREMENT

--刪除表

drop table student

--修改表的結構

alter table student add sex varchar(20)

--添加數據

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對象刪除??SQLiteDatabase db = getWritableDatabase();

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

db.close();

--修改(把shabi改為sibi)

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

Android對象用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

--查詢多個字段

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 標識字段 = %s" 如果表標識字段中有空格,不能用語句來刪除,用Android的數據庫對象刪

- 修改???????"update 表名 set 被修改的字段=修改后的結果 where??標識字段 = %s"

- 類型一定要轉成string類型保存

- false true是關鍵字 修改的時候要用 "\"" +false+"\""轉成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是自動增長的

+"字段名 varchar,"

+"字段名 varchar)";

*/

String Contact = "create table if not exists ContactTB"

+ "(Id integer primary key autoincrement,"

+ "DisplayName varchar,"

+ "Number varchar,"

+ "Server varchar)";

db.execSQL(Contact);

//數據庫更新版本

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) {

//表刪除字段時,先根據原來的表創建一個臨時的表(比原來的表少一個要刪除的字段),并復制數據

//刪除原來的表

//將臨時的表名稱改為原來的表

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) {

//創建表,參會者的信息

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);

}

-數據庫的操作


/*

增 ....這里的類型一定要轉成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;

}

//增加整個集合

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;

}

/**

* 刪除參會者

*/

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;

}

/*

*根據聯系人號碼,查詢聯系人

*/

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;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容