持久化存储(三)——SQLite的增删改查

本文介绍了SQLite数据库的使用,包括通过继承SQLiteOpenHelper创建数据库和表,查看数据库的方法,以及升级数据库、添加数据、更新数据、删除数据和查询数据的操作。同时,讨论了ContentValues在数据操作中的作用,并提供了示例代码。
摘要由CSDN通过智能技术生成

1)sqlite的基本使用:创建表格、删除表格、插入、修改、查询操作;
2)常用第三方数据库了解:room(首推)、real、greendao等等;

创建数据库

  • 这里创建一个BookStore.db的数据库,在数据库中新建一张Book表,表中包含id(主键)、作者、价格、页数、书名。
  • 建表语句:
create table Book (
            id integer primary key autoincrement,
            author text,
            price real,
            pages integer,
            name text)

方法一:继承SQLiteOpenHelper

两个抽象方法
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
   

    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
   

    }
两个实例方法
  • getReadableDatabase()
  • getWritableDatabase()
三个构造方法

构造方法是一种特殊的方法,它是一个与类同名且返回值类型为同名类类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。

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

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

    @RequiresApi(api = Build.VERSION_CODES.P)
    public MySQLiteOpenHelper(Context context, String name, int version, SQLiteDatabase.OpenParams openParams) {
   
        super(context, name, version, openParams);
    }

代码
  • 新建MySQLiteOpenHelper 类继承自SQLiteOpenHelper
  • 定义一个字符串常量,写入建表语句
  • onCreate()中,用execSQL()执行这条建表语句,并弹出一个Toast
  • 可以创建数据库的同时新建一个表
  • autoincrement: 自然增长(即12345……),之后就不需要再给id赋值了
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
   

    private Context mContext;
    public static final String CREATE_BOOK = "create table if not exists Book ( " +
            "id integer primary key autoincrement, " +
            "author text, " +
            "price real, " +
            "pages integer," +
            "name text)";

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

    public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
   
        super(context, name, factory, version, errorHandler);
        mContext = context;
    }

    @RequiresApi(api = Build.VERSION_CODES.P)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值