Andoird中Sqlite数据库的使用

一、概述

是一种轻量数据库,一般用于手机或者嵌入式设备中。
SQL:结构化查询语言。
在Android中我们一般继承于SQLiteOpenHelper进行SQLite的一个实现。

二、结果展示

demo效果

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1e800d769711406e807750453dbf7ab3.png

在这里插入图片描述
在这里插入图片描述

Android Studio自带工具查看数据库

在这里插入图片描述
在左下角

三、Sqlite使用和代码示例

创建SQLiteOpenHelper工具类

可以看到,我们创建了一个student表,主键id自增,属性有名字,学号,性别和成绩。
自带两个方法,一个是创建数据库,在这里可以进行创建表;一个是升级数据库,在这里可以更新数据库的版本,做一些操作。

class MySQLiteOpenHelper(
    context: Context,
) : SQLiteOpenHelper(context,"mySQLite.db",null,1) {

    val TABLE_STUDENT = "student"
    val CREATE_TABLE_SQL = " create table if not exists $TABLE_STUDENT(id integer primary key autoincrement,name text,number text,gender text,score text)"
    //创建
    override fun onCreate(p0: SQLiteDatabase?) {
        p0?.execSQL(CREATE_TABLE_SQL)
    }
      //升级数据库
    override fun onUpgrade(p0: SQLiteDatabase?, p1: Int, p2: Int) {
    }
    }

增加数据

可以看到有两种方式对数据进行操作,一种是执行sql语句,还有一种是使用SQLite提供给我们的api进行操作。

    fun insertData(stduent: Student): Long{
        val db = this.writableDatabase
//        db.execSQL("insert into $TABLE_STUDENT (name,number,gender,score) values('${stduent.name}','${stduent.number}','${stduent.gender}',${stduent.score})"
        val values = ContentValues()
        values.put("name",stduent.name)
        values.put("number",stduent.number)
        values.put("gender",stduent.gender)
        values.put("score",stduent.score)
        return db.insert(TABLE_STUDENT,null,values)

    }

删除数据

  fun deleteData(name: String): Int{
        val db = this.writableDatabase
        return db.delete(TABLE_STUDENT,"name = ? and score = ?", arrayOf(name,"男"))
    }

查询数据


    fun selectData(): List<Student>{
        val db = this.readableDatabase
        val list: MutableList<Student> = mutableListOf()
        db.rawQuery("select * from $TABLE_STUDENT",null).use { cursor ->
            while (cursor.moveToNext()){
                list.add(Student(cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4)))
            }
        }
        return list
    }

增加数据Activity代码示例

class InsertActivity : AppCompatActivity() {
    private lateinit var binding: ActivityInsertBinding
    private lateinit var mySQLiteOpenHelper: MySQLiteOpenHelper
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = DataBindingUtil.setContentView(this, R.layout.activity_insert)
        mySQLiteOpenHelper = MySQLiteOpenHelper(this)
    }

    fun save(view: View){
        val name = binding.edName.text.toString()
        val number = binding.edNumber.text.toString()
        val score = binding.edScore.text.toString()
        val gender = if(binding.rtBoy.isChecked) {
            "男"
        }else if(binding.rtGirl.isChecked){
            "女"
        }else{
            "其他"
        }
        val student = Student(name,number,gender,score)
        val rowId: Long = mySQLiteOpenHelper.insertData(student)
        if (rowId != -1L){
            showShort(this,"数据插入成功")
        }else{
            showShort(this,"数据插入失败")
        }

    }
}
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值