加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite使用方法

发布时间:2020-12-13 00:17:32 所属栏目:百科 来源:网络整理
导读:1、使用Sqlite的关键是创建一类,这个类继承SQLiteOpenHelper,继承的类必须重写三个方法:构造方法,onCreate方法,onUpgrate方法 2、SQLiteDatabase是直接操作数据库的对象,可以使用SQLiteOpenHelper的getReadableDatabase或 getWritableDatabase方法得到

1、使用Sqlite的关键是创建一类,这个类继承SQLiteOpenHelper,继承的类必须重写三个方法:构造方法,onCreate方法,onUpgrate方法

2、SQLiteDatabase是直接操作数据库的对象,可以使用SQLiteOpenHelper的getReadableDatabase或 getWritableDatabase方法得到SQLiteDatabase对象。具体使用这两个方法得到的SQLiteDatabase对象的不同 点,根据方法名就可以看出。一个是得到可读的,一个是得到可写的。


实例代码:

1、布局文件

XML/HTML代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"android:layout_width="fill_parent"
  4. android:layout_height="fill_parent">
  5. <Buttonandroid:id="@+id/createDatabase"android:layout_width="fill_parent"
  6. android:layout_height="wrap_content"android:text="CreateDatabase"></Button>
  7. <Buttonandroid:id="@+id/upgrateDatabase"android:layout_width="fill_parent"
  8. android:layout_height="wrap_content"android:text="UpgrateDatabase"></Button>
  9. <Buttonandroid:id="@+id/insert"android:layout_width="fill_parent"
  10. android:layout_height="wrap_content"android:text="Insert"></Button>
  11. <Buttonandroid:id="@+id/update"android:layout_width="fill_parent"
  12. android:layout_height="wrap_content"android:text="Update"></Button>
  13. <Buttonandroid:id="@+id/query"android:layout_width="fill_parent"
  14. android:layout_height="wrap_content"android:text="Query"></Button>
  15. <Buttonandroid:id="@+id/delete"android:layout_width="fill_parent"
  16. android:layout_height="wrap_content"android:text="Delete"></Button>
  17. </LinearLayout>


2、自定义继承SQLiteOpenHelper的类,重写三个方法

Java代码
  1. packageyyl.db;
  2. importandroid.content.Context;
  3. importandroid.database.sqlite.SQLiteDatabase;
  4. importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
  5. importandroid.database.sqlite.SQLiteOpenHelper;
  6. publicclassDatabaseHelperextendsSQLiteOpenHelper{
  7. //构造函数
  8. publicDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion)
  9. {
  10. super(context,name,factory,version);
  11. }
  12. //该函数在第一次创建数据库的时候执行
  13. @Override
  14. publicvoidonCreate(SQLiteDatabasedb){
  15. System.out.println("Creaetadatabasetest_userandtableuser");
  16. db.execSQL("createtableuser(idint,namevarchar(20))");
  17. }
  18. @Override
  19. publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
  20. System.out.println("upgrateadatabase");
  21. }
  22. }


3、数据库操作代码

Java代码
  1. packageyyl.sqlite;
  2. importyyl.db.DatabaseHelper;
  3. importandroid.app.Activity;
  4. importandroid.content.ContentValues;
  5. importandroid.database.Cursor;
  6. importandroid.database.sqlite.SQLiteDatabase;
  7. importandroid.os.Bundle;
  8. importandroid.view.View;
  9. importandroid.widget.Button;
  10. publicclassSqliteActivityextendsActivity{
  11. //定义变量
  12. privateButtoncreateDatabase=null;
  13. privateButtonupgrateDatabase=null;
  14. privateButtoninsert=null;
  15. privateButtonupdate=null;
  16. privateButtonquery=null;
  17. privateButtondelete=null;
  18. @Override
  19. publicvoidonCreate(BundlesavedInstanceState){
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.main);
  22. //根据ID得到控件对象
  23. createDatabase=(Button)findViewById(R.id.createDatabase);
  24. upgrateDatabase=(Button)findViewById(R.id.upgrateDatabase);
  25. insert=(Button)findViewById(R.id.insert);
  26. update=(Button)findViewById(R.id.update);
  27. query=(Button)findViewById(R.id.query);
  28. delete=(Button)findViewById(R.id.delete);
  29. //给按钮绑定单击事件监听器
  30. createDatabase.setOnClickListener(newView.OnClickListener(){
  31. @Override
  32. publicvoidonClick(Viewv){
  33. //生成DatabaseHelper对象
  34. DatabaseHelperdatabaseHelper=newDatabaseHelper(SqliteActivity.this,"sqlite_user",null,1);
  35. //只有调用了getReadableDatabase方法,或者getWritableDatabase方法,才会创建数据库
  36. databaseHelper.getReadableDatabase();
  37. }
  38. });
  39. upgrateDatabase.setOnClickListener(newView.OnClickListener(){
  40. @Override
  41. publicvoidonClick(Viewv){
  42. //生成DatabaseHelper对象
  43. DatabaseHelperdatabaseHelper=newDatabaseHelper(SqliteActivity.this,2);
  44. //只有调用了getReadableDatabase方法,或者getWritableDatabase方法,才会更新数据库
  45. databaseHelper.getReadableDatabase();
  46. }
  47. });
  48. insert.setOnClickListener(newView.OnClickListener(){
  49. @Override
  50. publicvoidonClick(Viewv){
  51. //创建ContentValue对象
  52. ContentValuesvalues=newContentValues();
  53. //插入键值对,注意值的类型必须和数据库表中字段的类型一致
  54. values.put("id",1);
  55. values.put("name","yangyulin");
  56. //生成SQLiteDatabase对象
  57. DatabaseHelperdbHelper=newDatabaseHelper(SqliteActivity.this,"test_user",1);
  58. SQLiteDatabasedb=dbHelper.getWritableDatabase();
  59. //执行插入
  60. db.insert("user",values);
  61. }
  62. });
  63. update.setOnClickListener(newView.OnClickListener(){
  64. @Override
  65. publicvoidonClick(Viewv){
  66. //生成DatabaseHelper对象
  67. DatabaseHelperdbHelper=newDatabaseHelper(SqliteActivity.this,1);
  68. //调用DatabaseHelper的getWritableDatabase方法,生成SQLiteDatabase对象
  69. SQLiteDatabasedb=dbHelper.getWritableDatabase();
  70. //生成ContentValues对象,并设定键值对
  71. ContentValuesvalues=newContentValues();
  72. values.put("name","newSky");
  73. //更新表信息:updateusersetname='newSky'whereid=1;
  74. db.update("user",values,"id=?",newString[]{"1"});
  75. }
  76. });
  77. query.setOnClickListener(newView.OnClickListener(){
  78. @Override
  79. publicvoidonClick(Viewv){
  80. //生成DatabaseHelper对象
  81. DatabaseHelperdbHelper=newDatabaseHelper(SqliteActivity.this,1);
  82. //调用DatabaseHelper的getReadableDatabase方法,生成SQLiteDatabase对象
  83. SQLiteDatabasedb=dbHelper.getReadableDatabase();
  84. //执行查询,将查询结果放入到Cursor中
  85. Cursorcursor=db.query("user",newString[]{"id","name"},newString[]{"1"},null);
  86. //打印查询结果
  87. while(cursor.moveToNext())
  88. {
  89. Stringname=cursor.getString(cursor.getColumnIndex("name"));
  90. System.out.println("name-->"+name);
  91. }
  92. }
  93. });
  94. delete.setOnClickListener(newView.OnClickListener(){
  95. @Override
  96. publicvoidonClick(Viewv){
  97. //生成DatabaseHelper对象
  98. DatabaseHelperdbHelper=newDatabaseHelper(SqliteActivity.this,1);
  99. //调用DatabaseHelper的getReadableDatabase方法,生成SQLiteDatabase对象
  100. SQLiteDatabasedb=dbHelper.getWritableDatabase();
  101. db.delete("user",newString[]{"1"});
  102. }
  103. });
  104. }
  105. }


查看数据库:

1、在CMD命令行下输入以下命令

>adb shelll

#>cd data/data/yyl.sqlite

#>cd databases

#>sqlite3 test_user

#>.schema

#>select * from user;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读