Android SQLite基本操作

來源:互聯網
上載者:User

在我的上一篇部落格《andorid SQLite簡介》中對SQLite的作用、特點等做了一個簡單的介紹,這篇部落格向大家介紹一下它的基本操作。

SQLiteDatabase類也專門提供了一些函數來操作資料庫,有 insert,delete,update,query(),不過這些函數需要的參數比較多,適合對SQL語句不太懂的新手使用,如果想提高自己的水平,那麼最好使用exeSQL(),rawQuery()。因為這兩個方法比較直觀明了、比較省事。

在程式初始化時候,必須先建立資料庫以對資料庫進行更新,所以這裡需要繼承一個 SQLiteOpenHelper抽象類別,這裡有兩個方法 onCreate(),onUpgreade()兩個方法,前者用來建立資料庫及對資料庫的一些初始化操作,後者是當資料庫版本進行更新時候用。


下面的例子是建立了一個資料庫名為:MyDB,版本為1的資料庫,並在資料庫中建立了一個User表。這裡利用了建構函式傳入了 資料庫名和版本名常量,參數為Context 對象。

public class DatebaseHelper extends SQLiteOpenHelper {public final static String NAME="MyDB";public final static int VERSION=1;public DatebaseHelper(Context context) {   super(context, NAME, null, VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {   db.execSQL("CREATE TABLE User (userID integer primary key autoincrement, userName varchar(20), pwd varchar(12))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {     db.execSQL("DROP TABLE IF EXISTS User");   onCreate(db);}}用SQLiteDatabase來操作SQLite資料庫。public class DatebaseService {private DatebaseHelper dbHelper;   public DatebaseService(Context context) {   this.dbHelper = new DatebaseHelper(context);}//儲存資料。public void save(User user){   SQLiteDatabase db=dbHelper.getWritableDatabase();   db.execSQL("insert into user(userName,pwd) values(?,?)", new Object[]{user.getName(),user.getpwd()});        }//更新資料    public void update(User user){    SQLiteDatabase db=dbHelper.getReadableDatabase();    db.execSQL("update user set userName=?,pwd=? where userID=?", new Object[]{user.getuserName(),user.getpwd(),user.getuserID()});    }//尋找資料    public User find(Integer userID){    SQLiteDatabase db=dbHelper.getReadableDatabase();    Cursor cursor=db.rawQuery("select * from User where userID=?",new String[]{userID.toString()} );    while(cursor.moveToNext()){       String name=cursor.getString(cursor.getColumnIndex("userName"));       int pwd=cursor.getInt(cursor.getColumnIndex("pwd"));            int id=cursor.getInt(cursor.getColumnIndex("userID"));            return new User(id,name,pwd);               }    return null;    }//刪除資料    public void delete(Integer userID){     SQLiteDatabase db=dbHelper.getReadableDatabase();     db.execSQL("delete from User where userID=?",new Object[]{userID});    }    public Long getCount(){    SQLiteDatabase db=dbHelper.getReadableDatabase();    Cursor cursor = db.rawQuery("select count(*) from User", null);   cursor.moveToFirst();   return cursor.getLong(0);    }

當然SQLite的操作還不止這一點,這裡只是一些簡單的增刪改查,還有很多更好的操作應用,將在以後介紹。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.