android 本地数据库SQLiteDatabase简单使用

Posted timi冬瓜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 本地数据库SQLiteDatabase简单使用相关的知识,希望对你有一定的参考价值。

 

可以在启动APP时,初始化本地数据库,检查创建需要的表

1. 初始化库和数据表,可以在

Application文件下 SqlDataUtils.init(this) 使用

class SqlDataUtils {

    companion object{

        var db : SQLiteDatabase? = null

        //初始化
        fun init(context: Context) {
               //判断库是否存在,不存在就会创建库。reading 是库的名字,可自定义
            db = SQLiteDatabase.openOrCreateDatabase(context.filesDir.toString() + "/reading.db3", null)
    
              //创建表  if not exists 判断表是否存在,存在就不创建
              //primary key autoincrement 主键ID自增
            db!!.execSQL("create table if not exists bookshelf(_id integer" +
                    " primary key autoincrement, " +
                    " type integer(2), " +
                    " name varchar(100)," +
                    " b_img varchar(100)," +
                    " addTime date(20))")
        } 
    }
}       

 

2 查询所有内容

var cursor : Cursor = db!!.rawQuery("select * from bookshelf ", null)
if(cursor != null){
    while(cursor.moveToNext()){
        //循环读取下一条数据
        var id = cursor.getInt(0).toLong()
        var type = cursor.getInt(1)
        var name = cursor.getString(2)
    }       
}

 

3. 根据条件查询指定内容

var name = "名字"
var cursor : Cursor = db!!.rawQuery("select type,name from bookshelf where name = \'$name\'", null)
if(cursor != null){
    while(cursor.moveToNext()){
        //循环读取下一条数据
        var r_type = cursor.getInt(0)
        var r_name = cursor.getString(1)
    }       
}

 

4.查询数据数目

var name = "名字"
var cursor : Cursor = db!!.rawQuery("select count(_id) from bookshelf where name = \'$name\'", null)
if(cursor != null){
   //光标移动到第一条
    cursor.moveToFirst()
   //获取数据条数
    val count = cursor.getInt(0)       
}

 

5. 增加数据

val cValue = ContentValues()
cValue.put("type",1)
cValue.put("name", "小周")
db!!.insert("bookmark", null, cValue)

 

6. 修改数据

db!!.execSQL("UPDATE bookshelf SET type = \'${2}\' WHERE name = \'${name}\' \'")

 

7. 删除数据

db!!.delete("bookshelf", "name = ? and type = ?", arrayOf<String>(name,type))

 

以上是关于android 本地数据库SQLiteDatabase简单使用的主要内容,如果未能解决你的问题,请参考以下文章

Android sqlite数据库-如何在滚动结束时显示列表视图添加 "加载更多项目"。

SQLiteDatabase.openDatabase(...) 与 getWritableDatabase

团队计划

PhoneNote

android 中如何导入本地的数据库?

android 中如何导入本地的数据库?