zoukankan      html  css  js  c++  java
  • 利用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>
    配置文件
  • 相关阅读:
    实现websocket中遇到的恶心问题。
    移动js框架使用报告
    超级难用的wireshark。
    三国演义LBS 20110406 本次清明节解决问题列表。
    【原创意】一个市值估算超亿的创意——愤怒的小猪(谢绝抄袭和冒名顶替)
    一个小游戏 让你感受“如何等待成功”!
    js 游戏引擎 + canvas 入门
    javascript 中的反射
    使用HTML5进行地理位置定位。误差在+500m
    【原创意】新浪微博都感到巨大鸭梨的全新创意 —— 二维码社区"神码"
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/7441306.html
Copyright © 2011-2022 走看看