Android之SQLite3命令行管理数据库


SQLite适合移动设备的数据存储,有处理速度快,占用资源少等优点,不需要安装部署,内嵌到程序中作为其一部分.http://www.sqlite.org/

SQLite的数据库文件位于/data/data/your-app-name/databases目录下.

使用数据库最基本就是增删改查操作.下面的示例是使用SQLite进行增删改查的操作.

我们需要一个辅助类继承SQLiteOpenHelper类 

  1. package com.sumq;  
  2.   
  3. import Android.content.Context;  
  4. import android.database.sqlite.SQLiteDatabase;  
  5. import android.database.sqlite.SQLiteDatabase.CursorFactory;  
  6. import android.database.sqlite.SQLiteOpenHelper;  
  7.   
  8. public class MySQLiteHelper extends SQLiteOpenHelper{  
  9.   
  10.     public MySQLiteHelper(Context context, String name, CursorFactory factory,  
  11.             int version) {  
  12.         super(context, name, factory, version);  
  13.         // TODO Auto-generated constructor stub   
  14.     }  
  15.   
  16.     /* 
  17.      *当数据库被创建时,首次执行该方法 
  18.      *一般将创建表等初始化操作放在该方法中执行  
  19.      */  
  20.     @Override  
  21.     public void onCreate(SQLiteDatabase db) {  
  22.         // TODO Auto-generated method stub   
  23.         db.execSQL("create table if not exists user_info(id integer primary key,name varchar,vip integer)");  
  24.     }  
  25.   
  26.     /*当版本升级时调用该函数 
  27.      *参数一为要更新的数据库 
  28.      *参数二传入老的版本号 
  29.      *参数三传入新的版本号  
  30.      */  
  31.     @Override  
  32.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  33.         // TODO Auto-generated method stub   
  34.           
  35.     }  
  36.   
  37.     /* 
  38.      *看需要,该方法在每次打开数据库时被调用  
  39.      */  
  40.     @Override  
  41.     public void onOpen(SQLiteDatabase db) {  
  42.         // TODO Auto-generated method stub   
  43.         super.onOpen(db);  
  44.     }  
  45. }  

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

执行程序结果显示

  • 1
  • 2
  • 下一页

相关内容