Android7.0持久化技术

持久技术即数据数据存储问题,Android有多种成熟的存储方式,例如SharedPreferences,SQLite等

SharedPreferences()方法

Android中主要有三种方法得到SharedPreferences对象

1.Context类中getSharedPreferences()方法

this.getSharedPreferences("sharedPreferences对象名",MODE_PRIVATE);//第一个参数 sharedP的名字 ,第二个是操作模式,目前只有MODE_PRIVATE可用。

2.Acitivity类中的getPreferences()方法

this.getPreferences(MODE_PRIVATE);//会自动当前活动的雷鸣作为SharedPreferences()的文件名

3.PreferenceManager类中的getDefaultSharedPreferences

PreferenceManager.getDefaultSharedPreferences();//静态方法

获得Editor对象

保存数据

 SharedPreferences.Editor editor = getSharedPreferences("test",MODE_PRIVATE).edit();
        editor.putString("key","value");
        editor.apply();

读取数据

        SharedPreferences sharedPreferences = this.getSharedPreferences("aa",MODE_PRIVATE);
        String data = sharedPreferences.getString("key","null");//第一个是key,第二个参数是如果没有那个键对值,就用第二个参数替换。

SQLite数据库存储

1.创建数据库

Android通过SQLiteOpneHelper帮助类来处理数据库

public class MySqlite extends SQLiteOpenHelper {
    public static final String CREATE_BOOK = "create table Book ("
            + "id integer primary key autoincrement)";//sql语言

    private Context mContext ;
    public MySqlite(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
        mContext = context
    }//第一个参数context,第二个参数数据库名,第三个参数自定义cursor指针(一般传入null),第四个数据库版本号

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_BOOK);//execSQL(sql语句)
    }//重写

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("drop table if exists Book");
    onCreate(db);
    }//重写
}

2.Activity中的操作

public class SqlActivity extends Activity {
    private MySqlite mySqlite;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mySqlite = new MySqlite(this,"Book.db",null,1);
        mySqlite.getWritableDatabase();//创建或打开一个数据库,当不可写入时,异常
        mySqlite.getReadableDatabase();//创建或打开一个数据库,当不可写入时,将以只读的方式打开数据库
    }
}

3.数据操作

SQLiteDataBase通过 contentValues对象来传递数据

注入方法 为 Insert
 SQLiteDatabase sqLiteDatabase = mySqlite.getWritableDatabase();

        ContentValues values = new ContentValues();
        values.put("key","value");
        sqLiteDatabase.insert("表名",null,values);//第二个参数 如果元素为空,则注入null
更新方法
db.update("表名",contentValues,"约束","约束")第三,第四参数用约束更新某一行或几行,若不用,则表示更新所有行。
删除
db.delete("表名","约束","约束");
查询

这里写图片描述
不必每个参数都设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值