數據存儲檢索

  SharePreferences的概念:輕量級的數據存儲方法
          以鍵值對來存儲應用程序的配置信息,只能保存基本數據類型。

     *、保存用戶私有數據和配置。
     *、需要存儲到外部介質中。

  SharedPreferences的使用;
      *、使用上下文Context獲取SharedPreferences對象。
          SharedPreferences  getSharedPreferences(String name,int accessMode)
             name  利用上下文獲取SharedPreferences對象,name表示XML文件名,accessMode爲訪問權限

*、數據庫概念和操作
     *、SQLite的介紹與使用
     *、sqliteDatabase命令:
            實例,*、通過openOrCreateDatabase靜態方法來獲取實例
                  *、通過execSQL(String cmd)可以執行命令
                            這個方法沒有返回值,不能用來查詢,

                            String path = getFileDir().getAbsolutePath()
                                        +"/database.db";
                            SQLiteDatabase database = SQLiteDatabase.
                                     openOrCreateDatabase(path,null);
                            String sql = "create table books....;";
                            database.execSQL(sql);

                  *、database.execSQL(String sql,Object [] bindArgs);通過佔位符提高代碼的靈活性。
                      String path = getFileDir().getAbsolutePath()
                                        +"/database.db";
                      SQLiteDatabase database = SQLiteDatabase.
                                     openOrCreateDatabase(path,null);
                      String sql = "insert into books values(?,?,?,?);";
                      Object [] bindArgs = {id,bookname,auther,Category};
                      database.execSQl(sql,bindArgs);

          *、有返回值的SQLiteDatabaase的方法
               *、rawQuery(String sql,String [] selectionArgs)返回一個Cursor的實例
                     數據庫查詢結果用Cursor表示,Cursor是代表若干條結果的集合,Cursor有一個position屬性,表示Cursor正在訪問那條數據,
                       Cursor中的方法:
                               *、cursor.getString(1);將Cursor.moveToFirst則position轉到第一條,則得到第一條,第一列
                               *、cursor 的遍歷
                                  for(cursor.moveToFirst(),!cursor.isAfterlast(),cursor.moveTOnext())
                               *cursor.getColumnIndex("id");可以獲得id所在類的position
                                 cursor.getInt(cursor.getColumnIndex("id"))得到id的值

    ContentValues對象幫助我們簡化數據庫命令:
    *insert(String table,String nullColumnHack,ContentValues values);
        eg,:
                ContentValues values = new ContentValues();
                values.put("id","1");
                values.put("bookname","tian");
                database.insert(bookname,null,values);

    *updata(String table,ContentValues valuse,String WhereClause,String []
            whereArgs)
               ContentValues values = new ContentValues();
                values.put("id","1");
                String [] where={""+4};
                database.updata(bookname,values "id=?",where);
                      將where裏的內容補全?,執行更新語句

    *delete(String table,String whereClause,String [] whereArgs)
            database.delete(bookname,"id=0",null);

    *查詢  Cursor query(String table表名,
                        String [] columas顯示那個列null是顯示多有的列,
                        String selection查詢條件,
                        String [] selectionArgs查詢條件的參數,
                        String groupBy,
                        String having語法have,可以爲null,
                        String orderBy語法,按xx排序,可以爲null)

          eg:Cursor cursor = database.query(bookname,null,null,null,null,null,null);

      SQLiteOpenHelper來創建表,就能實現不重複建立數據庫
           *、繼承SQLiteOpenhelper類,覆蓋onCreate方法。
          使用getWritableDatabase、getReadableDatabase來獲取SQLiteDatabase實例

          MyOpenhelper openHelper = new MyOpenHelper(getApplicateionContext(),"database.db數據庫名",null,1版本);
          database.openHelper.getWritableDatabase();

          class MyOpenHelper extends SQLiteOpenhelper{
             public void onCreate(SQliteDatabase arg0)
                 final String sql = "創建一個表"
                 arg0.execSQl(sql);
          }

*、SQLiteDatabase

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