kotlin数据库

基本用法

创建

class GoodsDb(context: Context?) : SQLiteOpenHelper(context, "goodsdb", null, 1) {

    override fun onCreate(db: SQLiteDatabase) {
        db.execSQL("create table goods (goodsname varchar(20),title varchar(20),price varchar(20),num varchar(20),pic varchar(100),flag varchar(10),ordertype varchar(20),moneytype varchar(20))")
    }

    override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {

    }
}

清单文件

 <provider
            android:name=".model.db.MyContentProvider"
            android:authorities="自己定义"
            android:enabled="true"
            android:exported="true"></provider>

继承ContentProvider

class MyContentProvider : ContentProvider() {
    var db:SQLiteDatabase ?= null
    override fun onCreate(): Boolean {
        var goodsDb:GoodsDb = GoodsDb(context)
        db = goodsDb.writableDatabase
        if (db == null){
            return false
        }else{
            return true
        }
    }


    override fun delete(uri: Uri, selection: String?, selectionArgs: Array<String>?): Int {
        return db!!.delete("goods",selection,selectionArgs)
    }

    override fun insert(uri: Uri, values: ContentValues?): Uri? {
        db!!.insert("goods",null,values)
        return uri
    }



    override fun query(
        uri: Uri, projection: Array<String>?, selection: String?,
        selectionArgs: Array<String>?, sortOrder: String?
    ): Cursor? {
        return db!!.query("goods",projection,selection,selectionArgs,null,null,sortOrder)
    }

    override fun update(
        uri: Uri, values: ContentValues?, selection: String?,
        selectionArgs: Array<String>?
    ): Int {
        return db!!.update("goods",values,selection,selectionArgs)
    }


    override fun getType(uri: Uri): String? {
        TODO(
            "Implement this to handle requests for the MIME type of the data" +
                    "at the given URI"
        )
    }

}

使用

	var uri:Uri ?= null
    var db:ContentResolver ?= null
 	fun oncreate{
 		uri = Uri.parse("content://www.bw.zhigao")
        db = contentResolver
        //查询
        var query= db!!.query(uri, arrayOf("goodsname","title","price","num","pic","flag","ordertype","moneytype"),null,null,null)
        if (query != null){
            dataBeans.clear()
            while (query.moveToNext()){
                var  goodsname = query.getString(query.getColumnIndex("goodsname"))
                var  title = query.getString(query.getColumnIndex("title"))
                var  price = query.getString(query.getColumnIndex("price")).toInt()
                var  num = query.getString(query.getColumnIndex("num")).toInt()
                var  pic = query.getString(query.getColumnIndex("pic"))
                var  flag = query.getString(query.getColumnIndex("flag"))
                var  ordertype = query.getString(query.getColumnIndex("ordertype"))
                var  moneytype = query.getString(query.getColumnIndex("moneytype"))
            }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值