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
class="code_img_closed" src="/Upload/Images/2017082721/0015B68B3C38AA5B.gif" alt="">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 }logs_code_collapse">数据库类
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>配置文件