原生Android sqlite的使用(二) 数据库的增删改查

原生Android sqlite的使用(一) 数据库创建升级等操作 点击跳转

1, 新建一个数据库字段的bean类   DBTestBean

class DBTestBean {
    var _id:Long?=null
    var name: String? = null
    var num:String?=null
    var age:Int?=null
}

2, 新建用于测试的 TDAO类 , 在里面新增 增删改查方法, 这里增删改查是调用的Android 提供的API, 为了避免出错, 所以没有使用sql进行增删改查操作

class TDao constructor(context: Context?) {
    private val dbHelper: DataBaseHelper = DataBaseHelper(context)


    fun insert(dbTestBean: DBTestBean) {
        val db:SQLiteDatabase = dbHelper.writableDatabase

        val values:ContentValues = ContentValues()
        //id就临时用当前时间戳
        values.put("_id",System.currentTimeMillis())
        values.put("name", dbTestBean.name)
        values.put("age",dbTestBean.age)
        values.put("num",dbTestBean.num)

        db.insert(DBConstants.T_TABLE_NAME,null,values)
        db.close()
    }

    fun delete(idArr:Array<String>) {
        val db:SQLiteDatabase = dbHelper.writableDatabase
        db.delete(DBConstants.T_TABLE_NAME,"_id=?",idArr)
        db.close()
    }

    fun update(idArr:Array<String>,contentValues: ContentValues) {
        val db:SQLiteDatabase = dbHelper.writableDatabase
        db.update(DBConstants.T_TABLE_NAME,contentValues,"_id=?",idArr)
        db.close()
    }


    fun query():List<DBTestBean> {
        val db:SQLiteDatabase = dbHelper.writableDatabase
        val cursor:Cursor = db.query(DBConstants.T_TABLE_NAME,null,null,null,null,null,null,null)
        val dbArr:MutableList<DBTestBean> = ArrayList()
        while (cursor.moveToNext()) {
            val dbTestBean=DBTestBean()
            dbTestBean._id = cursor.getLong(0)
            dbTestBean.name = cursor.getString(1)
            dbTestBean.age = cursor.getInt(2)
            dbTestBean.num = cursor.getString(3)
            dbArr.add(dbTestBean)
        }
        return dbArr
        cursor.close()
        db.close()
    }
}

3, 对sqlite数据库 插入功能 进行测试 , 执行如下代码, 插入"张三"的信息

        val dbTestBean=DBTestBean()
        dbTestBean.age=12
        dbTestBean.name="张三"
        dbTestBean.num="LY-001"
        TDao(context).insert(dbTestBean)

然后查看数据库 ,证明 插入方法正确

3, 对sqlite数据库的 查询 方法进行测试, 执行如下代码, 将查询到的信息打印到控制台

 val query = TDao(context).query()
        query.forEach {
            Log.i(TAG,it._id.toString())
            Log.i(TAG,it.name)
            Log.i(TAG,it.num)
            Log.i(TAG,it.age.toString())
        }

运行后查看log打印出数据, 查询方法正确

4,对sqlite数据库的 修改方法进行测试,执行如下代码,将数据库中的名字改为 "漫天飞羽"

 val query = TDao(context).query()
        query.forEach {
            val values= ContentValues()
            values.put("name","漫天飞羽")
            TDao(context).update(arrayOf(it._id.toString()),values)
        }

运行后, 查看数据库名字已改变,证明 修改方法 正确

5, 对sqlite数据库的 删除方法进行测试, 执行如下代码, 将数据库的第一条数据删除

        val query = TDao(context).query()
        var count = 0
        query.forEach {
            if (count == 0) {
                TDao(context).delete(arrayOf(it._id.toString()))
            }
            count++
        }

运行后, 查看数据库第一条数据已被删除, 证明 删除方法正确

发布了181 篇原创文章 · 获赞 68 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/wx_lanyu/article/details/103431868