android学习笔记之十一数据存储(Shared Preferences、SQLite)

android数据的存储方式可以用标准的j2se的api文件存储和网络存储方式.以下是android的其他两种存储方式

1,Shared Preferences是一个简单键值对的xml格式的存储方式
     a,读取
        getPreferences (int mode) 返回SharedPreferences实例
mode Activity.MODE_PRIVATE, Activity.MODE_WORLD_READABLE, Activity.MODE_WORLD_WRITEABLE
        
getString (String key, String defValue) 获取数据
     b,写数据
       通过SharedPreferences(必须为MODE_PRIVATE或MODE_WORLD_WRITEABLE)实例的edit()返回Editor对象
       Editor.putString (String key, String value) 设置值
       Editor.commit() 提交保存
       Editor.clear()  清除所有数据
       Editor.remove (String key) 移除某一值

2,SQLite
    a,SQLiteDatabase类
     1),打开/关闭数据库
       openOrCreateDatabase(String name, int mode, CursorFactory factory)返回SQLiteDatabase实例 //数据库不存在则新建一个
       mode Context.MODE_PRIVATE, Context.MODE_WORLD_READABLE, Context.MODE_WORLD_WRITEABLE, Context.MODE_PRIVATE

       SQLiteDatabase类.close()关闭数据库
     2),执行数据库操作
       SQLiteDatabase.execSQL (String sql) //执行Sql语句

       long insert (String table, String nullColumnHack, ContentValues values)
       int update (String table, ContentValues values, String whereClause, String[] whereArgs)
       int delete (String table, String whereClause, String[] whereArgs)
       其中ContentValues是一个键值对,通过ContentValues.put方法设置列名和列值

       Cursor rawQuery (String sql, String[] selectionArgs) //执行的是语句
       Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
       Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)
       Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having,
              String orderBy, String limit)
       其中:
    columns 显示列
    selection 条件where部分
    selectionArgs ?替换符号.如selection为name =? and age=?那么selectionArgs可以为 new  String[]{"abc","20"}
      
       Cursor类
         int getCount() 返回记录数
  boolean isClosed () 判断关闭
  boolean isFirst ()
  boolean isLast ()

  boolean moveToFirst ()
  boolean moveToLast ()
  boolean moveToNext ()
  boolean moveToPosition (int position)
  boolean moveToPrevious ()

  boolean isNull (int columnIndex) 判断是否为空
  XXX getXXX(int columnIndex) 读取某一列的数据

     3),事务
       SQLiteDatabase.beginTransaction()  //打开
       SQLiteDatabase.setTransactionSuccessful() //提交
       SQLiteDatabase.endTransaction()   //结束

    b,SQLiteOpenHelper
      通过该继承该类可以获取到数据库创建/打开/升级等信息
      须实现的方法
      onCreate(SQLiteDatabase db)     //数据库被创建时触发
      onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)      //升级数据库

      其他重写
      onOpen(SQLiteDatabase db) 书库打开是触发

      方法
         SQLiteDatabase getReadableDatabase ()
  synchronized SQLiteDatabase getWritableDatabase ()

无论是Shared Preferences还是SQLite都是程序私有的其他程序无法直接访问.要想访问其他程序的数据须实现Content Provider.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值