SQLiteOpenHelper的使用

 1 import android.content.Context;
 2 import android.database.SQLException;
 3 import android.database.sqlite.SQLiteDatabase;
 4 import android.database.sqlite.SQLiteOpenHelper;
 5 
 6 public class NoteDBHelper extends SQLiteOpenHelper {
 7 
 8     private static final String DATABASE_NAME = "notedatabase.db";
 9     private static final String TABLE_NAME = "NOTETABLE";
10     private static final String UID = "_id";
11     private static final String NAME = "Name";
12     private static final int DATABASE_VERSION = 1;//upgrade时需要改版本号
13     private static final String CREATE_TABLE = "CREATE TABLE "+TABLE_NAME
14             +"("+UID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+NAME+" VARCHAR(255))";
15     private static final String DROP_TABLE = "DROP TABLE IF EXISTS"+TABLE_NAME;
16     private Context context;  
17 
18     NoteDBHelper(Context context){
19 
20         super(context, DATABASE_NAME, null, DATABASE_VERSION);
21         this.context=context;
22         Message.message(context, "constructor called");
23     }
24 
25     public void onCreate(SQLiteDatabase db){
26 
27         try {
28             db.execSQL(CREATE_TABLE);
29             Message.message(context, "onCreate called");
30         }catch (SQLException e){
31 
32             Message.message(context, ""+e);
33         }
34 
35     }
36 
37     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
38 
39         try {
40             db.execSQL(DROP_TABLE);
41             onCreate(db);
42             Message.message(context, "onUpgrade called");
43         }catch (SQLException e){
44 
45             Message.message(context, "" + e);
46         }
47 
48     }
49 }

在Activity中:

 1 NoteDBHelper noteDBHelper;
 2 
 3 @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5 
 6         super.onCreate(savedInstanceState);
 7         setContentView(R.layout.activity_activity_demo);
 8 
 9         noteDBHelper = new NoteDBHelper(this);//have not yet accessed the database
10         SQLiteDatabase sqLiteDatabase = noteDBHelper.getWritableDatabase();//this time noteDBhelper call onCreate()
11         Log.e(TAG, "start onCreate()~~~~~");
12     }

这样在第一次运行app的时候一个叫notedatabase.db的数据库文件将会在android设备的/data/data/com.practice.apple.activitydemo/目录下生成,可以拷到电脑上进行操作。

(/data/data正常情况下是没有读写权限的,可以机器先root然后把这个目录的权限改成可读写,比如RE)

原文地址:https://www.cnblogs.com/turtle920/p/4859304.html