微信扫一扫打赏支持

利用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、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>
配置文件

 

posted @ 2017-08-27 19:59  范仁义  阅读(521)  评论(0编辑  收藏  举报