sqlite的簡單使用,Android中數據庫的簡單使用

步驟:

創建數據庫:方法有兩種,

1,第一張方法,通過SQLiteOpenHelper實現:

創建一個helper類繼承SQLiteOpenHelper,

系統會提示你實現兩個方法和一個構造函數,一個是創建數據庫方法,一個是更新方法,一個是4個參數的構造案例如下:

public class MySqliteHelper extends SQLiteOpenHelper{

    public MySqliteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
//創建表語句創建一個叫做圖書的表,
 sqLiteDatabase.execSQL("create table book(_id integer primary key autoincrement,name varchar(20),page integer,price real)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase,  int oldVersion, int newVersion) {


    }
}




這個時候一個幫助類就已經實現好了,只要在需要的時候實現這個構造方法,數據庫就創建好了,現在我們需要的就是在onCreate方法中創建一張表

那麼應該如何書寫?

看上邊oncreate放法中的語句,語句中創建一個叫做圖書的表,裏邊的屬性分別是id,自增的,書名,頁數,價格。

簡單的一句話,就創建好了一張表,但是有個前提就是,你需要在外部創建helper對象,纔會在創建數據庫的時候,將表一同創建出來,現在我們看一下如何創建數據庫加表吧?

現在我們來到mainActivity中,








public class MainActivity extends AppCompatActivity {
private MySqliteHelper helper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //創建helper,傳入上下文,數據庫名字,工廠默認爲null,版本號爲1;
        helper=new MySqliteHelper(this,"library",null,1);
//        創建數據庫對象 
//        helper.getReadableDatabase()
        SQLiteDatabase db = helper.getWritableDatabase();
//這裏是增刪改查的方法,後面分別單個講解
          db.insert()
          db.query()
          db.update()
          db.delete()
 }}

這裏我想應該非常簡單了吧?聲明helpr,通過構造創建helper對象,得到對象之後,通過get方法,得到數據庫對象,這個時候數據庫和內部的圖書的表就已經生成了,只是在內部封裝着你看不到而已。

注意:這裏有兩個創建數據庫的get方法,



getReadableDatabase()和getWritableDatabase();
有必要對他們兩個進行以下解釋:
getWritableDatabase取得的實例不是僅僅具有寫的功能,而是同時具有讀和寫的功能同樣的getReadableDatabase取得的實例也是具對數據庫進行讀和寫的功能。
  兩者的區別在於
  getWritableDatabase取得的實例是以讀寫的方式打開數據庫,如果打開的數據庫磁盤滿了,此時只能讀不能寫,此時調用了getWritableDatabase的實例,那麼將會發生錯誤(異常)
  getReadableDatabase取得的實例是先調用getWritableDatabase以讀寫的方式打開數據庫,如果數據庫的磁盤滿了,此時返回打開失敗,繼而用getReadableDatabase的實例以只讀的方式去打開數據庫。
所以建議使用getread方法,不會出現錯誤,並且實現的功能是一樣的。
說道這裏第一種方法就介紹的差不多了,接下來是第二種方法:
2,通過 SQLiteDatabase.openOrCreateDatabase(file, factory):
3通過:Context.openOrCreateDatabase ()方法,其實大同小異,
因爲現在絕大多數都在使用幫助類,方便後期的更新和維護,所以這裏不在詳細的描述了。






下面看一下如何使用數據庫進行增刪改查吧?


思路回來,重新回到剛纔創建的主活動中:


首先看一下增的方法,也就是插入方法:
需要表明,null,和map集合的values對象,將數據包裝進values中。
ContentValues values=new ContentValues();
values.put("key","數據");
db.insert("book",null,values);

//更新,參數,表名,values更新的values集合數據,條件名映射,條件的屬性映射值,
ContentValues values=new ContentValues();
values.put("name","校長");
db.update("book",values,"id=?",new String[]{"1"});





//刪除,原理同上,只是節省了values的使用,刪除而已不需要包裝數據



db.delete("book","id=?",new String []{"1"});

//下邊就是最麻煩的查找,也是經常使用的方發,這裏一般使用七個參數的,這都算少的,當然,如果查詢全部的時候只設置一個參數,其他都爲null即可。

參數1是表名,參數二是要得到的數據的列名key數組,第三個還是條件,第四個是條件值,這句話就是說查詢book中id是1的id值和姓名的值,
Cursor cursor = db5.query("user", new String[]{"id","name"}, "id=?", new String[]{"1"}, null, null, null, null);//返回的是遊標對象。
//利用遊標遍歷所有數據對象,通過循環將數據得到
while(cursor.moveToNext()){
    String name = cursor.getString(cursor.getColumnIndex("name"));
    //日誌打印輸出
    Log.i(SWORD,"query-->"+name);



說道這裏簡單的時候用方法就模糊的講解完畢,這裏講解的有些模糊,很多用不到的參數也沒有講,不過足夠用了,
還有一中方法就是直接通過sq語句的方式進行增刪查改
這種方法,新人不建議使用,但是會玩的人會覺得非常的方便
db.rawQuery("查詢語句",String[]selectionArg)//查詢語句,條件的值數組
db.execSQL("增刪改語句");








發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章