溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android編程之數(shù)據(jù)庫的創(chuàng)建方法詳解

發(fā)布時間:2020-10-19 20:55:37 來源:腳本之家 閱讀:206 作者:Qi_Yuan 欄目:移動開發(fā)

本文實例講述了Android編程之數(shù)據(jù)庫的創(chuàng)建方法。分享給大家供大家參考,具體如下:

主java

package com.itheima.createdatabase;
import android.app.Activity;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
public class MainActivity extends Activity {
  private Context mContext;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mContext = this;
    //創(chuàng)建一個幫助類對象
    MySqliteOpenHelper mySqliteOpenHelper = new MySqliteOpenHelper(mContext);
    //調(diào)用getReadableDatabase方法,來初始化數(shù)據(jù)庫的創(chuàng)建
    SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
  }
}

同一目錄下創(chuàng)建一個類繼承于數(shù)據(jù)庫

package com.itheima.createdatabase;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class MySqliteOpenHelper extends SQLiteOpenHelper {
  public MySqliteOpenHelper(Context context) {
    //context :上下文  , name:數(shù)據(jù)庫文件的名稱  factory:用來創(chuàng)建cursor對象,默認為null
    //version:數(shù)據(jù)庫的版本號,從1開始,如果發(fā)生改變,onUpgrade方法將會調(diào)用,4.0之后只能升不能將
    super(context, "info.db", null,1);
  }
  //oncreate方法是數(shù)據(jù)庫第一次創(chuàng)建的時候會被調(diào)用; 特別適合做表結(jié)構(gòu)的初始化,需要執(zhí)行sql語句;SQLiteDatabase db可以用來執(zhí)行sql語句
  @Override
  public void onCreate(SQLiteDatabase db) {
    //通過SQLiteDatabase執(zhí)行一個創(chuàng)建表的sql語句
    db.execSQL("create table info (_id integer primary key autoincrement,name varchar(20))");
  }
  //onUpgrade數(shù)據(jù)庫版本號發(fā)生改變時才會執(zhí)行; 特別適合做表結(jié)構(gòu)的修改
  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    //添加一個phone字段
    db.execSQL("alter table info add phone varchar(11)");
  }
}

筆記:

什么情況下我們才用數(shù)據(jù)庫做數(shù)據(jù)存儲? 大量數(shù)據(jù)結(jié)構(gòu)相同的數(shù)據(jù)需要存儲時。

mysql sqlserver2000  sqlite 嵌入式 輕量級

SqliteOpenHelper

創(chuàng)建數(shù)據(jù)庫步驟:

1.創(chuàng)建一個類繼承SqliteOpenHelper,需要添加一個構(gòu)造方法,實現(xiàn)兩個方法oncreate ,onupgrade

構(gòu)造方法中的參數(shù)介紹:

context :上下文   , name:數(shù)據(jù)庫文件的名稱    factory:用來創(chuàng)建cursor對象,默認為null

version:數(shù)據(jù)庫的版本號,從1開始,如果發(fā)生改變,onUpgrade方法將會調(diào)用,4.0之后只能升不能降

super(context, "info.db", null,1);

2.創(chuàng)建這個幫助類的一個對象,調(diào)用getReadableDatabase()方法,會幫助我們創(chuàng)建打開一個數(shù)據(jù)庫

3.復寫oncreateonupgrdate方法:

oncreate方法是數(shù)據(jù)庫第一次創(chuàng)建的時候會被調(diào)用;  特別適合做表結(jié)構(gòu)的初始化,需要執(zhí)行sql語句;SQLiteDatabase db可以用來執(zhí)行sql語句

onUpgrade數(shù)據(jù)庫版本號發(fā)生改變時才會執(zhí)行; 特別適合做表結(jié)構(gòu)的修改

幫助類對象中的getWritableDatabase 和 getReadableDatabase都可以幫助我們獲取一個數(shù)據(jù)庫操作對象SqliteDatabase.

區(qū)別:

getReadableDatabase:

先嘗試以讀寫方式打開數(shù)據(jù)庫,如果磁盤空間滿了,他會重新嘗試以只讀方式打開數(shù)據(jù)庫。

getWritableDatabase:

直接以讀寫方式打開數(shù)據(jù)庫,如果磁盤空間滿了,就直接報錯。

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android操作SQLite數(shù)據(jù)庫技巧總結(jié)》、《Android數(shù)據(jù)庫操作技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android文件操作技巧匯總》、《Android開發(fā)入門與進階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》

希望本文所述對大家Android程序設(shè)計有所幫助。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI