數據庫和表的創建(SQLiteOpenHelper)


1.Android為了讓我們能夠更加方便地管理數據庫,專門提供了一個SQLiteOpenHelper幫助類,借助這個類就可以非常簡單地對數據庫進行創建和升級。SQLiteOpenHelper是一個抽象類,如果想使用它的話,就要創建一個自己的幫助類(這里我們以自己創建的MySqliteHelper類去繼承)去繼承它。SQLiteOpenHelper中有兩個抽象方法,分別是onCreate()和onUpgrade(),我們必須在自己的幫助類里面重寫這兩個方法,然后在這兩個方法中實現創建、升級數據庫的邏輯。
2.為了以后方便修改數據庫名,表名及相關字段,專門創建一個常量類(Constant)進行管理。專門創建一個類(DbManger)進行對數據庫操作的工具欄。在MainActivity類中通過點擊按鈕來創建數據庫和表。
3.<1>MySqliteHelper類代碼:

 

public class MySqliteHelper extends SQLiteOpenHelper {
    public MySqliteHelper(Context context) {
        super(context, Constant.DATABASE_NAME, null, Constant.DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        //創建表結構
        String sql = "create table "+Constant.TABLE_NAME+"("+
                Constant.ID+" integer primary key autoincrement,"+
                Constant.NAME+" varchar(20)," +
                Constant.AGE+" integer)";
        sqLiteDatabase.execSQL(sql);//執行sql語句

    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

<2>Constant類代碼:

public class Constant {
    public static final String DATABASE_NAME = "info.db";//數據庫名稱
    public static final int DATABASE_VERSION = 1;//數據庫版本號
    public static final String TABLE_NAME = "person";//表名
    public static final String ID = "id";//表字段
    public static final String NAME = "name";//表字段
    public static final String AGE = "age";//表字段

}

<3>DbManger類代碼:

/**
 * Created by lance on 2017/2/27.
 * 主要是對數據庫操作的工具欄
 */

public class DbManger {
    private static MySqliteHelper mMySqliteHelper;
    public static MySqliteHelper getIntance(Context context){
        if(mMySqliteHelper == null){
            mMySqliteHelper = new MySqliteHelper(context);
        }
        return mMySqliteHelper;
    }
}

<4>MainActivity類代碼:

public class MainActivity extends AppCompatActivity {
    private Button mDbButton;
    private MySqliteHelper mMySqliteHelper;
    private SQLiteDatabase db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mMySqliteHelper = DbManger.getIntance(MainActivity.this);
        mDbButton = (Button) findViewById(R.id.create_db);
        /**
         * 點擊按鈕創建數據庫
         */
        mDbButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                /*
                getReadableDatabase()和getWritableDatabase()都是創建或打開數據庫
                如果數據庫不存在則創建數據庫,如果數據庫存在直接打開數據庫
                默認情況下這兩個函數都表示打開或創建可讀可寫的數據庫對象,如果磁盤已滿或者是
                數據庫本身權限等情況下getReadableDatabase()打開的是只讀數據庫
                 */
                db = mMySqliteHelper.getWritableDatabase();
            }
        });
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM