--創(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;
}