当前位置:   article > 正文

SQLite数据库_sqllistopenhelper有几个方法

sqllistopenhelper有几个方法
1.sqlLiteOpenHelper 抽象类 需要创建一个自己的帮助类取继承它
2.sqlLiteOpenHelper 有2个抽象方法,onCreate 和 onUpgrade 分别实现创建和升级 数据库
3.sqlLiteOpenHelper 2个实例方法 , getReadableDatabase 和getWritableDatabase 创建或者打开一个数据库(数据库存在则打开,不存在则创建)
返回可对数据库进行读写的对象;
4.sqlLiteOPenHelper 中2个构造方法可重写,采用4个参数的
第一个参数:Context
第二:数据库名
第三:查询数据时候返回一个自定义Cursor,一般传null
第四:数据库版本号

onCreate 用于处理一些创建表的 操作


5.创建数据库

创建MyDatabaseHelper 类继承SQLiteOpenHelper 

  1. public class MyDatabaseHelper extends SQLiteOpenHelper
  2. {
  3. // 建表语句
  4. public static final String CREATE_BOOK = "create table book ( "
  5. + "id integer primary key autoincrement, "
  6. + "author text,"
  7. + "price real,"
  8. + "pages integer,"
  9. + "name text)";
  10. private Context mContext;
  11. public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
  12. {
  13. super(context, name, factory, version);
  14. mContext = context;
  15. }
  16. @Override
  17. public void onCreate(SQLiteDatabase db)
  18. {
  19. db.execSQL(CREATE_BOOK);
  20. }
  21. @Override
  22. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
  23. {
  24. }
  25. }
  1. public class MainActivity extends AppCompatActivity
  2. {
  3. private MyDatabaseHelper dbHelper;
  4. @Override
  5. protected void onCreate(Bundle savedInstanceState)
  6. {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.activity_main);
  9. // 创建数据库
  10. dbHelper = new MyDatabaseHelper(this,"tableName.db",null,1);
  11. dbHelper.getWritableDatabase();
  12. }
  13. }

6.升级数据

  1. public class MyDatabaseHelper extends SQLiteOpenHelper
  2. {
  3. // 建表语句
  4. public static final String CREATE_BOOK = "create table book ( "
  5. + "id integer primary key autoincrement, "
  6. + "author text,"
  7. + "price real,"
  8. + "pages integer,"
  9. + "name text)";
  10. // 多加一张表
  11. public static final String CREATE_PERSON = "create table person( "
  12. + "id integer primary key autoincrement,"
  13. + "name text,"
  14. + "age integer,"
  15. + "sex text)";
  16. private Context mContext;
  17. public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
  18. {
  19. super(context, name, factory, version);
  20. mContext = context;
  21. }
  22. @Override
  23. public void onCreate(SQLiteDatabase db)
  24. {
  25. db.execSQL(CREATE_BOOK);
  26. db.execSQL(CREATE_PERSON);
  27. }
  28. @Override
  29. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
  30. {
  31. // 先调用 如果发现数据库中存在book 和person表,则先删除2张表后再调用onCreate方法重新创建2表
  32. db.execSQL("drop table if exists Book");
  33. db.execSQL("drop table if exists Person");
  34. onCreate(db);
  35. }
  36. }
  1. public class MainActivity extends AppCompatActivity
  2. {
  3. private MyDatabaseHelper dbHelper;
  4. @Override
  5. protected void onCreate(Bundle savedInstanceState)
  6. {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.activity_main);
  9. // 升级数据库
  10. dbHelper = new MyDatabaseHelper(this,"tableName.db",null,2);
  11. dbHelper.getWritableDatabase();
  12. }
  13. }

7.insert 数据

先获取SQLiteDataBase对象

再使用ContentValues 对数据进行封装

  1. // insert数据
  2. SQLiteDatabase db = dbHelper.getWritableDatabase();
  3. ContentValues values =new ContentValues();
  4. // 添加数据
  5. values.put("name","haha");
  6. values.put("age",12);
  7. db.insert("表名",null,values);

8.update数据

  1. // update数据
  2. SQLiteDatabase db = dbHelper.getWritableDatabase();
  3. ContentValues values =new ContentValues();
  4. // 添加数据
  5. values.put("name","haha");
  6. db.update("表名",values,"id = ?",new String[]{"1"});

9.delete数据

  1. // delete数据
  2. SQLiteDatabase db = dbHelper.getWritableDatabase();
  3. // 删除数据
  4. db.delete("表名","id = ?",new String[] {"1"});

10.select

  1. // 查询数据
  2. SQLiteDatabase db = dbHelper.getWritableDatabase();
  3. // 表名,指定查询的咧名,where的约束条件,为where站位符提供值,指定group by的咧,对结果进一步约束,指定查询结果的排序
  4. Cursor cursor = db.query("表名", null, null, null, null, null, null);
  5. // 便利Cursor 取出数据
  6. if (cursor.moveToFirst()) {
  7. do {
  8. String name = cursor.getString(cursor.getColumnIndex("name"));
  9. } while (cursor.moveToNext());
  10. }

11. 使用sql语句操作数据库

  1. // 查询数据
  2. SQLiteDatabase db = dbHelper.getWritableDatabase();
  3. // 使用sql操作数据库
  4. db.execSQL("sql语句");
  5. // 只有select的时候使用rawQuery
  6. db.rawQuery("select * from Book",null);



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/491000
推荐阅读
相关标签
  

闽ICP备14008679号