SQLite的使用

SQLite是什么,为什么要使用SQLite

  • SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,并且占用资源非常的低
  • 当我们需要存储一些比较复杂的数据的时候,SharedPreferences存储并不能够满足我们的要求,这时候我们就需要一种更加便于管理的存储方式,SQLite便能够帮助我们更加方便的存储和管理数据

如何创建数据库和数据表

  • 使用SQLite创建数据库和表,首先要创建一个类继承SQLiteOpenHelper,并且实现它的方法
    private Context context;
    //sql建表语句
    private static final String TABLE_PRODUOT = "create table Student(" +
            "id integer primary key autoincrement," +
            "name text," +
            "age integer)";

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        //建表
        db.execSQL(TABLE_PRODUOT);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
  • 之后在Activity中创建数据库,onCreate()方法会在创建数据库的时候调用同时创建表
  • 第一个参数为上下文,第二个参数为数据库名,第三个参数为数据库的游标工厂,第四个参数为数据库的版本
SQLTest sql = new SQLTest(this, "Student.db", null, 1);
  • 在这里我们获取一下数据库对象,以便下面使用
SQLiteDatabase db = sql.getWritableDatabase();

如何添加数据

  • 通过上面获取的SQLiteDatabase,便可以调用增删改查的操作了
  • 创建一个ContentValues 用来容纳数据,然后调用insert()方法,第一个参数是表名,第二个参数当我们没有传入数据的时候可以为某些为空的列自动赋值,这里我们设为null,第三个参数就是传入的数据
ContentValues values = new ContentValues();
values.put("name",nameET.getText().toString());
values.put("age",Integer.parseInt(ageET.getText().toString().intern()));
db.insert("Student",null,values);

如何修改与删除数据

  • 修改数据与删除数据比较类似
  • 第三第四个参数用来指定具体更新哪一行,第二个参数表示更新后的数据
db.update("Student",values,"name = ?",new String[]{nameET.getText().toString()});
  • 删除方法的第二第三个参数用来指定删除条件
db.delete("Student","name = ?",new String[]{nameET.getText().toString()});

如何查询数据

  • 查询数据是CRUD中最复杂的一种操作,SQL全称翻译成中文就是结构化查询语言,它的大部分功能都体现在查询上,我们这次只使用简单的查询用法
  • 我们调用它的query()方法,会返回一个Cursor对象,query()方法第一个参数是表名,我们只传入表名,其他设置为空
Cursor cursor = db.query("Student",null,null,null,null,null,null);
  • 然后读取数据将其打印出来即可
                if (cursor.moveToFirst()) {
                    do {
                        int id = cursor.getInt(cursor.getColumnIndex("id"));
                        String name = cursor.getString(cursor.getColumnIndex("name"));
                        int age = cursor.getInt(cursor.getColumnIndex("age"));
                    } while (cursor.moveToNext());
                }
                cursor.close();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值