利用SQLite在android上創建資料庫 方法: 1、創建我們的資料庫類繼承SQLiteOpenHelper類 完成相關函數的重寫和資料庫對象的初始化 public MySQLiteOpenHelper(Context context,int version) super(context, "f ...
利用SQLite在android上創建資料庫
方法:
1、創建我們的資料庫類繼承SQLiteOpenHelper類
完成相關函數的重寫和資料庫對象的初始化
public MySQLiteOpenHelper(Context context,int version)
super(context, "fanfan2.db", null, version);
helper.getReadableDatabase();
重寫onCreate和onUpgrade
2、創建資料庫對象並獲取資料庫對象
MySQLiteOpenHelper helper=new MySQLiteOpenHelper(getContext(), 1);
helper.getReadableDatabase();
3、要創建新表的話,就在oncreate裡面敲execSQL
這樣就是創建一個新的學生表
public void onCreate(SQLiteDatabase db) { Log.d("fanfan", "onCreate"); db.execSQL("CREATE TABLE student(id INTEGER,name TEXT)"); }
4、oncreate在創建新的資料庫的時候才會被調用,如果你之前創建了,現在是不會被調用的。
onUpgrade是在資料庫的版本更新之後才會被調用。
代碼:
com.fry.MySQLiteOpenHelper
1 package com.fry; 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 import android.util.Log; 8 9 public class MySQLiteOpenHelper extends SQLiteOpenHelper{ 10 11 /* 12 * 1、context 上下文 13 * 2、那麼資料庫名稱 14 * 3、factory 15 * 4、version 資料庫文件的版本 16 */ 17 18 public MySQLiteOpenHelper(Context context,int version) { 19 super(context, "fanfan2.db", null, version); 20 // TODO Auto-generated constructor stub 21 } 22 23 /* 資料庫文件創建成功後調用 24 * (non-Javadoc) 25 * @see android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase) 26 */ 27 @Override 28 public void onCreate(SQLiteDatabase arg0) { 29 Log.d("fanfan", "onCreate"); 30 } 31 32 /* 資料庫文件更新後調用 33 * (non-Javadoc) 34 * @see android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite.SQLiteDatabase, int, int) 35 */ 36 @Override 37 public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { 38 Log.d("fanfan", "onUpgrade"); 39 } 40 41 }資料庫類
com.fanfan.test.Test
1 package com.fanfan.test; 2 3 4 import com.fry.Activity01; 5 import com.fry.MySQLiteOpenHelper; 6 7 import android.annotation.SuppressLint; 8 import android.test.AndroidTestCase; 9 import android.util.Log; 10 11 public class Test extends AndroidTestCase{ 12 @SuppressLint("NewApi") public void test1(){ 13 MySQLiteOpenHelper helper=new MySQLiteOpenHelper(getContext(), 1); 14 helper.getReadableDatabase(); 15 String name=helper.getDatabaseName(); 16 Log.d("test1", name); 17 } 18 19 20 }Java Unit測試
/createDatabase2/AndroidManifest.xml
1 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 package="com.example.createDatabase_2" 3 android:versionCode="1" 4 android:versionName="1.0" > 5 6 <uses-sdk 7 android:minSdkVersion="8" 8 android:targetSdkVersion="19" /> 9 10 <application 11 android:allowBackup="true" 12 android:icon="@drawable/ic_launcher" 13 android:label="@string/app_name" 14 android:theme="@style/AppTheme" > 15 16 <uses-library android:name="android.test.runner"/> 17 18 <activity 19 android:name="com.fry.MainActivity" 20 android:label="@string/app_name" > 21 <intent-filter> 22 <action android:name="android.intent.action.MAIN" /> 23 24 <category android:name="android.intent.category.LAUNCHER" /> 25 </intent-filter> 26 </activity> 27 <activity android:name="com.fry.Activity01" android:exported="true"></activity> 28 </application> 29 <instrumentation 30 android:name="android.test.InstrumentationTestRunner" 31 android:targetPackage="com.example.createDatabase_2" android:label="Test for My app" 32 ></instrumentation> 33 34 </manifest>配置文件