android数据存储之持久化技术(三)SQLite数据库

2021-07-03  本文已影响0人  别看后面有人
SQLite数据库存储

SQLite是一款轻量级的数据库,它的运行速度快,占用资源少,当需要大量复杂的关系型数据的时候,SQLite数据库就很有用了
一、创建数据库

class MyDataSqliteHelper(val context: Context,name:String,version:Int):SQLiteOpenHelper(context,name,null,version) {

    private val createBook="create table Book("+
            "id integer primary key autoincrement,"+
            "autor text,"+
            "price real,"+
            "pages integer,"+
            "name text)"
    override fun onCreate(db: SQLiteDatabase?) {
       db!!.execSQL(createBook)
    }

    override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
        TODO("Not yet implemented")
    }
}

SQLiteOpenHelper中有两个构造方法可以重写,一般用参数少的即可。构造方法中接收四个参数,第一个context,第二个参数数据库的名称,第三个参数允许我们在查询数据的时候返回一个自定义的Cursor,一般传入null即可,第四个参数为当前数据库的版本号,可以对数据库进行升级操作。构建出SQLiteOpenHelper的实例之后,调用它的getReadDatabase()或者getWriteDatabase()方法创建数据库,数据库文件放在/data/data/<package name>/databases/目录下,
代码如下:

  val dbHelper=MyDataSqliteHelper(this,"BookStore.db",1)
        createData.setOnClickListener {
           dbHelper.writableDatabase
        }

还是通过工具Device File Explorer查看,在databases下面多了一个BookStore.db的文件,是无法查看Book表,因此需要借助Database Navigator的插件工具,然后在studio左侧的DB Browser查看数据
二、向数据库表中添加数据

  val db=dbHelper.writableDatabase
            val values=ContentValues().apply {
                put("name","code")
                put("author","demo")
                put("pages",10)
                put("price",12)
            }

            db.insert("Book",null,values)


            val values2=ContentValues().apply {
                put("name","code1")
                put("author","demo1")
                put("pages",10)
                put("price",12)
            }

            db.insert("Book",null,values2)

三、查询数据库表中的数据

 queryData.setOnClickListener { 
            val db=dbHelper.writableDatabase
            val cursor=db.query("Book",null,null,null,null,null,null)
            if (cursor.moveToFirst()){
                do {
                    val name=cursor.getString(cursor.getColumnIndex("name"))
                    val author=cursor.getString(cursor.getColumnIndex("author"))
                    val pages=cursor.getInt(cursor.getColumnIndex("pages"))
                    val price=cursor.getDouble(cursor.getColumnIndex("price"))
                }while (cursor.moveToNext())
            }
            cursor.close()
        }

四、删除数据库表中的数据

 deleteData.setOnClickListener {
            val db=dbHelper.writableDatabase
            db.delete("Book","pages > ?", arrayOf("500"))
        }

五、修改数据库表中的数据

  upgrateData.setOnClickListener { 
            val db=dbHelper.writableDatabase
            val values=ContentValues()
            values.put("price",10.88)         
            db.update("Book",values,"name = ?", arrayOf("codes"))
        }
上一篇下一篇

猜你喜欢

热点阅读