你的位置:首页 > 操作系统

[操作系统]利用SQLite在android上创建数据库

利用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、factory15   * 4、version 数据库文件的版本16  */17 18  public MySQLiteOpenHelper(Context context,int version) {19   super(context, "fanfan2.db", null, version);20   // TODO Auto-generated constructor stub21  }22 23  /* 数据库文件创建成功后调用24   * (non-Javadoc)25   * @see android.database.sqlite.SQLiteOpenHelper#onCreate(android.database.sqlite.SQLiteDatabase)26  */27  @Override28  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  @Override37  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.

 1 <manifest ="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  <application11   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   <activity19    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>
配置文件