软件编程
位置:首页>> 软件编程>> Android编程>> Android Kotlin使用SQLite案例详解

Android Kotlin使用SQLite案例详解

作者:所以还是劝你学习  发布时间:2022-11-01 19:20:37 

标签:Android,Kotlin,SQLite

Kotlin使用SQLite

首先确定我们的目标,SQLite只是一种工具,我们需要掌握就是增删改查就可以,我们真正需要动脑的还是项目中的业务逻辑。我这篇文章写得比较适合新手,没用过SQLite的同学。
前期准备工作
新建一个类MyDataBaseHelper继承自SQLiteOpenHelper,代码如下:


class MyDatabaseHelper(var context: Context, name: String, version: Int) :
   SQLiteOpenHelper(context, name, null, version) {
   public var createBook="create table Book (" +
           "id integer primary key autoincrement," +
           "author text," +
           "price real," +
           "pages integer," +
           "name text)"

override fun onCreate(db: SQLiteDatabase?) {
//        下面这个todo 如果不注释掉的话就会报错。
//        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
       db?.execSQL(createBook)
       Toast.makeText(context,"Create Successed",Toast.LENGTH_LONG).show()
   }

override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
//        TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
       db?.execSQL("drop table if exists Book")
       onCreate(db)
   }
}

对数据进行操作
操作比较简单,下面直接看代码:
Activity中


class MySQLite : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       setContentView(R.layout.activity_my_sqlite)
       val dbHelper=MyDatabaseHelper(this,"BookStore.db",1)
       /**
        * 创建表
        */
       btnCreateDataBase.setOnClickListener {
           dbHelper.writableDatabase
       }
       /**
        * 添加数据
        */
       btnAddData.setOnClickListener {
           val db=dbHelper.writableDatabase
           val Values1=ContentValues().apply {
//                第一条数据
               put("name","The Da Vinci Code")
               put("author","Dan Broen")
               put("pages",454)
               put("price",16.96)
           }
           db.insert("Book",null,Values1)
           val  values2=ContentValues().apply {
//                第二条数据
               put("name","The Lost Symbol")
               put("author","Dan Brown")
               put("pages",510)
               put("price",19.95)
           }
           db.insert("Book",null,values2)
       }
       btnUpdateData.setOnClickListener {
           val db=dbHelper.writableDatabase
           val values=ContentValues()
           values.put("price",10.99)
           db.update("Book",values,"name=?", arrayOf("The Da Vinci Code"))
       }
       btnDeleteData.setOnClickListener {
           val db=dbHelper.writableDatabase
           db.delete("Book","pages>?", arrayOf("500"))
       }
       btnQueryData.setOnClickListener {
           val db=dbHelper.writableDatabase
//            查询Book表中所有数据
//            这里获取到是Cursor对象
           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.getString(cursor.getColumnIndex("pages"))
                   val price=cursor.getString(cursor.getColumnIndex("price"))
                   Log.d("MainActivity","book name is $name")
                   Log.d("MainActivity","author is $author")
                   Log.d("MainActivity","pages is $pages")
                   Log.d("MainActivity","price is $price")
               }while (cursor.moveToNext())
           }
           cursor.close()
       }
   }
}

布局文件


<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".sqlite.MySQLite">

<Button
       android:id="@+id/btnCreateDataBase"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="CreateDataBase"
       android:textAllCaps="false"
       app:layout_constraintTop_toTopOf="parent" />

<Button
       android:id="@+id/btnAddData"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="AddData"
       android:textAllCaps="false"
       app:layout_constraintTop_toBottomOf="@+id/btnCreateDataBase" />

<Button
       android:id="@+id/btnUpdateData"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="UpdateData"
       android:textAllCaps="false"
       app:layout_constraintTop_toBottomOf="@+id/btnAddData" />

<Button
       android:id="@+id/btnDeleteData"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:text="DeleteData"
       app:layout_constraintTop_toBottomOf="@+id/btnUpdateData" />

<Button
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:id="@+id/btnQueryData"
       android:text="Query Data"
       android:textAllCaps="false"
       app:layout_constraintTop_toBottomOf="@+id/btnDeleteData"/>
</androidx.constraintlayout.widget.ConstraintLayout>

来源:https://blog.csdn.net/weixin_42415553/article/details/109720924

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com