編輯:Android開發實例
由於不大善於總結和撰寫,所以很多概念都以網絡上參考學習為主,我會將這些知識融於到一個具體的練習中加以理解、鞏固和分享。
今天要學習的SQLite個人感覺和以前使用的sql server,比較基礎的東西都大同小異,基本的創建數據庫表、對數據的增刪改查的語句都差不多,如果懂得sql server的人學習SQLite應該還是容易上手的。唯一感覺不習慣的是,初次了解SQLite,在網上看別人的示例時,總感覺得很混亂,其實原因在於同樣實現一個數據的增刪改查,是有幾種不同方法的。例如插入數據:有使用SQLiteDataBase對象執行sql語句方法db.execSQL(sql);或者db.insert(table, nullColumnHack, values);也有content provide和content Resolver搭配使用的(數據庫提供對外訪問 和 提供從外數據訪問)。
如果一個應用程序中的數據庫無需提供對外訪問,實現一個繼承自SQLiteOpenHelper的數據庫幫助類,以支持數據庫的創建和版本的更新,這些SQLiteDataBase所不能實現的.但是SQLiteDataBase卻具備一些非常重要的對數據庫進行操作的方法,數據表的創建刪除、數據的增刪改查都是通過它實現的。
執行增刪改操作方法 :db.execSQL(sql); 或者db.insert()、db.delete()、db.update(),並且包括數據表的創建和刪除等等也可以通過execSQL實現
代碼
//創建表
public boolean createTable(){
SQLiteDatabase db=dbHelper.getWritableDatabase();
String sql="CREATE TABLE IF NOT EXISTS "+TABLE_NAME+"(ID INTEGER PRIMARY KEY,Name VARCHAR,Age INTEGER)";
try{
db.execSQL(sql);
return true;
}catch(SQLException ex){
Log.d(tag, "create table failure");
return false;
}
}
//添加數據
public boolean addData(){
String name=etname.getText().toString();
String age=etage.getText().toString();
SQLiteDatabase db=dbHelper.getWritableDatabase();
String sql="insert into "+TABLE_NAME+"(name,age) values ('"+name+"','"+age+"')";
try{
db.execSQL(sql);
return true;
}catch(SQLException ex){
Log.d(tag, "add data failure");
return false;
}
}
//修改
public boolean updateData(){
SQLiteDatabase db=dbHelper.getWritableDatabase();
String sql="update "+TABLE_NAME+" set age='2' where name like 'cb'";
Object[] bindArgs={"cb"};
try{
db.execSQL(sql, bindArgs);
return true;
}catch(SQLException ex){
Log.d(tag, "update data failure");
return false;
}
}
執行數據查詢方法:db.rawQuery(sql, selectionArgs); 或者db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
代碼
//查詢
public void selectData(){
SQLiteDatabase db=dbHelper.getReadableDatabase();
String[] columns={"name"};
Cursor cursor=db.query(TABLE_NAME, columns, null, null, null, null, null);
String names="";
while(cursor.moveToNext()){
int c=cursor.getColumnIndexOrThrow("Name");
String name=cursor.getString(c);
// < = >
// String name=cursor.getString(0);//只查詢了一列
if(names==""){
names=name;
}else{
names=names+"\n"+name;
}
}
tvname.setText(names);
//另外一種查詢方法
// String sql="select name from "+TABLE_NAME;
// Curosr cursor=db.rawQuery(sql, null);
}
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
登錄應用程序的屏幕,詢問憑據登錄到一些特定的應用。可能需要登錄到Facebook,微博等本章介紹了,如何創建一個登錄界面,以及如何管理安全問題和錯誤嘗試。首先,必須定義兩
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
學習目的: 1、掌握在Android中如何建立RadioGroup和RadioButton 2、掌握RadioGroup的常用屬性 3、理解RadioButton