歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android之SQLite3命令行管理數據庫

Android之SQLite3命令行管理數據庫

日期:2017/3/1 10:51:49   编辑:Linux編程

SQLite適合移動設備的數據存儲,有處理速度快,占用資源少等優點,不需要安裝部署,內嵌到程序中作為其一部分.http://www.sqlite.org/

SQLite的數據庫文件位於/data/data/your-app-name/databases目錄下.

使用數據庫最基本就是增刪改查操作.下面的示例是使用SQLite進行增刪改查的操作.

我們需要一個輔助類繼承SQLiteOpenHelper類

  1. package com.sumq;
  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. public class MySQLiteHelper extends SQLiteOpenHelper{
  7. public MySQLiteHelper(Context context, String name, CursorFactory factory,
  8. int version) {
  9. super(context, name, factory, version);
  10. // TODO Auto-generated constructor stub
  11. }
  12. /*
  13. *當數據庫被創建時,首次執行該方法
  14. *一般將創建表等初始化操作放在該方法中執行
  15. */
  16. @Override
  17. public void onCreate(SQLiteDatabase db) {
  18. // TODO Auto-generated method stub
  19. db.execSQL("create table if not exists user_info(id integer primary key,name varchar,vip integer)");
  20. }
  21. /*當版本升級時調用該函數
  22. *參數一為要更新的數據庫
  23. *參數二傳入老的版本號
  24. *參數三傳入新的版本號
  25. */
  26. @Override
  27. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  28. // TODO Auto-generated method stub
  29. }
  30. /*
  31. *看需要,該方法在每次打開數據庫時被調用
  32. */
  33. @Override
  34. public void onOpen(SQLiteDatabase db) {
  35. // TODO Auto-generated method stub
  36. super.onOpen(db);
  37. }
  38. }

  1. package com.sumq;
  2. import android.app.Activity;
  3. import android.content.ContentValues;
  4. import android.database.Cursor;
  5. import android.database.sqlite.SQLiteDatabase;
  6. import android.os.Bundle;
  7. import android.widget.TextView;
  8. public class UISQLiteActivity extends Activity {
  9. TextView tv;
  10. MySQLiteHelper mySQLiteHelper;
  11. /** Called when the activity is first created. */
  12. @Override
  13. public void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.main);
  16. tv = (TextView)findViewById(R.id.tv);
  17. mySQLiteHelper = new MySQLiteHelper(this, "test.db", null, 1);
  18. insertAndUpdateData(mySQLiteHelper);
  19. String result = queryData(mySQLiteHelper);
  20. tv.setText("名字\t等級\t"+result);
  21. }
  22. private void insertAndUpdateData(MySQLiteHelper mySQLiteHelper){
  23. //獲取數據庫對象
  24. SQLiteDatabase db = mySQLiteHelper.getWritableDatabase();
  25. //第一種插入數據庫的方法直接寫sql語句
  26. db.execSQL("insert into user_info(name,vip) values('user1',1)");
  27. //第二種調用insert方法
  28. ContentValues values = new ContentValues();
  29. values.put("name", "user2");
  30. values.put("vip", "2");
  31. db.insert("user_info", null, values);
  32. //更新level=2 的數據
  33. values.clear();
  34. values.put("name", "user2");
  35. values.put("vip", "3");
  36. db.update("user_info", values, "vip = ?", new String[]{"2"});
  37. db.close();
  38. }
  39. private String queryData(MySQLiteHelper mySQLiteHelper){
  40. String result ="";
  41. SQLiteDatabase db = mySQLiteHelper.getReadableDatabase();
  42. Cursor cursor = db.query("user_info", null, null, null, null, null, "id asc");
  43. while (cursor.moveToNext()) {
  44. result = result+cursor.getString(cursor.getColumnIndex("name"))+" ";
  45. result = result+cursor.getInt(cursor.getColumnIndex("vip"))+" \n";
  46. }
  47. cursor.close();
  48. db.close();
  49. return result;
  50. }
  51. @Override
  52. protected void onDestroy() {
  53. SQLiteDatabase db = mySQLiteHelper.getWritableDatabase();
  54. db.delete("user_info", "1", null);
  55. super.onDestroy();
  56. }
  57. }

執行程序結果顯示

Copyright © Linux教程網 All Rights Reserved