请选择 进入手机版 | 继续访问电脑版

[Android] Android Kotlin利用 SQLite案例详解

[复制链接]
查看108 | 回复29 | 2021-9-13 03:55:23 | 显示全部楼层 |阅读模式

Kotlin利用 SQLite

起首 确定我们的目标 ,SQLite只是一种工具,我们必要 把握 就是增编削 查就可以,我们真正必要 动脑的还是项目中的业务逻辑。我这篇文章写得比较得当 新手,没用过SQLite的同砚 。
前期预备 工作
新建一个类MyDataBaseHelper继承自SQLiteOpenHelper,代码如下:

  1. class MyDatabaseHelper(var context: Context, name: String, version: Int) :
  2. SQLiteOpenHelper(context, name, null, version) {
  3. public var createBook="create table Book (" +
  4. "id integer primary key autoincrement," +
  5. "author text," +
  6. "price real," +
  7. "pages integer," +
  8. "name text)"
  9. override fun onCreate(db: SQLiteDatabase?) {
  10. // 下面这个todo 如果不注释掉的话就会报错。
  11. // TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
  12. db?.execSQL(createBook)
  13. Toast.makeText(context,"Create Successed",Toast.LENGTH_LONG).show()
  14. }
  15. override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
  16. // TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
  17. db?.execSQL("drop table if exists Book")
  18. onCreate(db)
  19. }
  20. }
复制代码

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

  1. class MySQLite : AppCompatActivity() {
  2. override fun onCreate(savedInstanceState: Bundle?) {
  3. super.onCreate(savedInstanceState)
  4. setContentView(R.layout.activity_my_sqlite)
  5. val dbHelper=MyDatabaseHelper(this,"BookStore.db",1)
  6. /**
  7. * 创建表
  8. */
  9. btnCreateDataBase.setOnClickListener {
  10. dbHelper.writableDatabase
  11. }
  12. /**
  13. * 添加数据
  14. */
  15. btnAddData.setOnClickListener {
  16. val db=dbHelper.writableDatabase
  17. val Values1=ContentValues().apply {
  18. // 第一条数据
  19. put("name","The Da Vinci Code")
  20. put("author","Dan Broen")
  21. put("pages",454)
  22. put("price",16.96)
  23. }
  24. db.insert("Book",null,Values1)
  25. val values2=ContentValues().apply {
  26. // 第二条数据
  27. put("name","The Lost Symbol")
  28. put("author","Dan Brown")
  29. put("pages",510)
  30. put("price",19.95)
  31. }
  32. db.insert("Book",null,values2)
  33. }
  34. btnUpdateData.setOnClickListener {
  35. val db=dbHelper.writableDatabase
  36. val values=ContentValues()
  37. values.put("price",10.99)
  38. db.update("Book",values,"name=?", arrayOf("The Da Vinci Code"))
  39. }
  40. btnDeleteData.setOnClickListener {
  41. val db=dbHelper.writableDatabase
  42. db.delete("Book","pages>?", arrayOf("500"))
  43. }
  44. btnQueryData.setOnClickListener {
  45. val db=dbHelper.writableDatabase
  46. // 查询Book表中所有数据
  47. // 这里获取到是Cursor对象
  48. val cursor=db.query("Book",null,null,null,null,null,null)
  49. if (cursor.moveToFirst()){
  50. do {
  51. val name=cursor.getString(cursor.getColumnIndex("name"))
  52. val author=cursor.getString(cursor.getColumnIndex("author"))
  53. val pages=cursor.getString(cursor.getColumnIndex("pages"))
  54. val price=cursor.getString(cursor.getColumnIndex("price"))
  55. Log.d("MainActivity","book name is $name")
  56. Log.d("MainActivity","author is $author")
  57. Log.d("MainActivity","pages is $pages")
  58. Log.d("MainActivity","price is $price")
  59. }while (cursor.moveToNext())
  60. }
  61. cursor.close()
  62. }
  63. }
  64. }
复制代码

布局文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".sqlite.MySQLite">
  8. <Button
  9. android:id="@+id/btnCreateDataBase"
  10. android:layout_width="match_parent"
  11. android:layout_height="wrap_content"
  12. android:text="CreateDataBase"
  13. android:textAllCaps="false"
  14. app:layout_constraintTop_toTopOf="parent" />
  15. <Button
  16. android:id="@+id/btnAddData"
  17. android:layout_width="match_parent"
  18. android:layout_height="wrap_content"
  19. android:text="AddData"
  20. android:textAllCaps="false"
  21. app:layout_constraintTop_toBottomOf="@+id/btnCreateDataBase" />
  22. <Button
  23. android:id="@+id/btnUpdateData"
  24. android:layout_width="match_parent"
  25. android:layout_height="wrap_content"
  26. android:text="UpdateData"
  27. android:textAllCaps="false"
  28. app:layout_constraintTop_toBottomOf="@+id/btnAddData" />
  29. <Button
  30. android:id="@+id/btnDeleteData"
  31. android:layout_width="match_parent"
  32. android:layout_height="wrap_content"
  33. android:text="DeleteData"
  34. app:layout_constraintTop_toBottomOf="@+id/btnUpdateData" />
  35. <Button
  36. android:layout_width="match_parent"
  37. android:layout_height="wrap_content"
  38. android:id="@+id/btnQueryData"
  39. android:text="Query Data"
  40. android:textAllCaps="false"
  41. app:layout_constraintTop_toBottomOf="@+id/btnDeleteData"/>
  42. </androidx.constraintlayout.widget.ConstraintLayout>
复制代码

到此这篇关于Android Kotlin利用 SQLite案例详解的文章就先容 到这了,更多相干 Android Kotlin利用 SQLite内容请搜索 脚本之家从前 的文章或继续欣赏 下面的相干 文章盼望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar Aim_yuan | 2021-9-19 00:06:59 | 显示全部楼层
我回帖admin楼主给加积分吗?
回复

使用道具 举报

avatar 王俊杰2017 | 2021-9-24 13:44:12 | 显示全部楼层
视死如归的架势啊!
回复

使用道具 举报

avatar 追上前面的 | 2021-9-25 14:40:48 | 显示全部楼层
admin楼主今年多大了?
回复

使用道具 举报

avatar 彭832 | 2021-10-6 19:21:56 | 显示全部楼层
收藏了,很不错的内容!
回复

使用道具 举报

avatar 无人岛屿颈 | 2021-10-20 19:18:39 | 显示全部楼层
顶!顶!顶!
回复

使用道具 举报

小弟默默的路过贵宝地~~~
回复

使用道具 举报

admin楼主病的不轻啊!
回复

使用道具 举报

有机会找admin楼主好好聊聊!
回复

使用道具 举报

看了这么多帖子,第一次看到这么有深度了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则