SQLite操作数据库的步骤

举报
tea_year 发表于 2021/12/30 00:07:13 2021/12/30
【摘要】 视频课:https://edu.csdn.net/course/play/7621 package com.example.dbdemo; import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.data...

视频课:https://edu.csdn.net/course/play/7621



  
  1. package com.example.dbdemo;
  2. import android.content.Context;
  3. import android.database.sqlite.SQLiteDatabase;
  4. import android.database.sqlite.SQLiteDatabase.CursorFactory;
  5. import android.database.sqlite.SQLiteOpenHelper;
  6. import android.widget.Toast;
  7. public class MyDatabaseHelper extends SQLiteOpenHelper {
  8. //创建自定义数据库操作类的两个成员变量,静态常量字符串
  9. public static final String CREATE_BOOK="create table book(id integer primary key autoincrement,author text,price real,pages integer,name text)";
  10. public static final String CREATE_CATEGORY="create table category(id integer primary key autoincrement"+
  11. ",category_name text,category_code integer)";
  12. private Context mContext; //上下文对象;
  13. public MyDatabaseHelper(Context context, String name,
  14. CursorFactory factory, int version) {
  15. super(context, name, factory, version);
  16. mContext=context; //给当前上下文对象赋值
  17. }
  18. //1.创建数据库的方法
  19. @Override
  20. public void onCreate(SQLiteDatabase db) {
  21. //使用db的execSQL方法,来执行创建数据表的方法
  22. db.execSQL(CREATE_BOOK);
  23. db.execSQL(CREATE_CATEGORY);
  24. Toast.makeText(mContext,"创建数据成功!",Toast.LENGTH_SHORT).show();
  25. }
  26. //更新数据的方法;更新数据内容的方法;因为已经有了数据库,则不会再次创建数据库 ;
  27. @Override
  28. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  29. db.execSQL("drop table if exists book"); //如果存在,则删除!!!
  30. db.execSQL("drop table if exists category");
  31. onCreate(db);
  32. }
  33. }


  
  1. package com.example.dbdemo;
  2. import android.app.Activity;
  3. import android.content.ContentValues;
  4. import android.database.sqlite.SQLiteDatabase;
  5. import android.os.Bundle;
  6. import android.view.Menu;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.widget.Button;
  10. import android.widget.Toast;
  11. public class MainActivity extends Activity {
  12. //1.创建主活动类的成员变量是数据库操作类
  13. private MyDatabaseHelper dbHelper;
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.activity_main);
  18. //---------------------------在主活动的方法里面来调用写数据的方法;
  19. //如何让调用onUpgrade()方法,使用版本号,即第四个参数
  20. dbHelper=new MyDatabaseHelper(MainActivity.this,"BookStore.db",null,2);
  21. Button btnDb=(Button)findViewById(R.id.btnDb);
  22. btnDb.setOnClickListener(new OnClickListener(){
  23. @Override
  24. public void onClick(View arg0) {
  25. dbHelper.getWritableDatabase();
  26. }
  27. });
  28. //------------------为插入数据,编写相应的代码-----------------
  29. //SQLiteDatabase对象,借助这个对象,就可以对数据进行CRUD操作!
  30. //SQLiteDatabase类提供了一个insert()方法,这个方法专门用于对数据进行添加数据。它接受三个参数,第一个参数是表名,我们希望向哪个表添加数据,这里就传入该表的名字
  31. //第二个参数用于在未指定给某些可为空的列自动赋值NULL,一般我们用不到这个功能;
  32. //第三个参数是一个ContentValues对象,它提供了一系列的put()方法重载,用于向ContentValues中添加数据,只需要将表中的每个列名以及相应的待添加数据传入即可
  33. Button btnAddData=(Button)findViewById(R.id.btnAddData);
  34. btnAddData.setOnClickListener(new OnClickListener(){
  35. @Override
  36. public void onClick(View v) {
  37. SQLiteDatabase db=dbHelper.getWritableDatabase(); //返回一个SQLiteDatabase对象,可以对sqlite数据库进行操作;
  38. ContentValues values=new ContentValues();
  39. //开始组装第一条数据
  40. values.put("name", "魔兽");
  41. values.put("author", "张");
  42. values.put("pages", 454);
  43. values.put("price", 16.96);
  44. long i1=db.insert("Book", null,values); //插入第一条数据;
  45. values.clear(); //清楚内容值对象里面的数据;
  46. values.put("name", "JQuery");
  47. values.put("author", "li.sir");
  48. values.put("pages", 510);
  49. values.put("price", 19.95);
  50. long i2=db.insert("Book",null,values); //插入第二条数据;
  51. if(i1!=-1){
  52. Toast.makeText(MainActivity.this, "第一条数据插入成功", Toast.LENGTH_LONG).show();
  53. }
  54. if(i2!=-1){
  55. Toast.makeText(MainActivity.this, "第一条数据插入成功", Toast.LENGTH_LONG).show();
  56. }
  57. }
  58. });
  59. //针对数据进行更新;
  60. Button btnUpdateData=(Button)findViewById(R.id.btnUpData);
  61. btnUpdateData.setOnClickListener(new OnClickListener(){
  62. @Override
  63. public void onClick(View v) {
  64. SQLiteDatabase db=dbHelper.getWritableDatabase(); //获得SQLiteDatabase对象;
  65. ContentValues values=new ContentValues(); //获得内容值对象;
  66. values.put("price", 188);
  67. int i3=db.update("Book", values,"name=?",new String[]{"魔兽"});
  68. //update(表名 ,值对象,列名,确定原来的哪一行数据
  69. if(i3!=0){
  70. Toast.makeText(MainActivity.this, "数据修改成功", Toast.LENGTH_LONG).show();
  71. }
  72. }
  73. });
  74. //-------------------使用删除按钮,对数据删除------------
  75. Button btnDeleteData=(Button)findViewById(R.id.btnDeleteData);
  76. btnDeleteData.setOnClickListener(new OnClickListener(){
  77. @Override
  78. public void onClick(View v) {
  79. SQLiteDatabase db=dbHelper.getWritableDatabase(); //获得SQLiteDatabase对象db
  80. int i4=db.delete("Book", "pages>?", new String[]{"500"});
  81. //delete(表名,哪个参数,具体值)
  82. Toast.makeText(MainActivity.this, "数据删除成功"+i4, Toast.LENGTH_LONG).show();
  83. }
  84. });
  85. }
  86. @Override
  87. public boolean onCreateOptionsMenu(Menu menu) {
  88. getMenuInflater().inflate(R.menu.main, menu);
  89. return true;
  90. }
  91. }


文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。

原文链接:aaaedu.blog.csdn.net/article/details/51744608

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。