数据存储检索

  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

猜你喜欢

转载自blog.csdn.net/tst116/article/details/70237666
今日推荐