Android——SQLite數據庫(一)創建數據庫、創建表、初始化數據


xml

 <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="創建數據庫"
        android:id="@+id/bt_cjshujuku"
        android:onClick="chuangjiansjkonclick"/>

java

package com.example.chenshuai.test321;

import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

public class Activitydatashujuku extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activitydatashujuku);
    }

    /*操作數據庫有兩個非常重要的類:SQLiteDatabase和SQLiteOpenHelper
    * 1.SQLiteDatabase的實例便代表了SQLite數據庫,通過SQLiteDatabase的一些常用方法,可以執行SQL語句,
    * 對數據庫進行添加、刪除、更新、查找和修改等操作
    * 2.SQLiteOpenHelper是一個輔助類,主要負責創建和打開數據庫以及對數據庫的版本進行管理。
    * SQLiteOpenHelper是一個抽象類,需要繼承它並實現它的幾個回調函數
    * */
   /*
    1.寫內部類 繼承SQLiteOpenHelper
    2.生成實現方法
      (1)創建  public void onCreate(SQLiteDatabase db) {
      (2)升級  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    3.生成器 調用父類的構造方法
     public DBHelper(String name, int version) {

    4.點擊事件 調用構造方法DBHelper 創建 連接數據庫
*/
    //內部類繼承  需要自己生成構造器
    class DBHelper extends SQLiteOpenHelper
    {
        //構造方法
        //name 數據庫名
        //version 自己定義的數據庫的版本號
        public DBHelper(String name, int version) {

           //需要調用父類的構造方法 寫在第一行
            super(Activitydatashujuku.this, name, null, version);
        }

        //實現方法  是一個回調方法
        //在創建數據庫時調用
        //什么時候創建數據庫:連接數據庫的時候,如果數據庫文件不存在
        //只調用一次
        @Override
        public void onCreate(SQLiteDatabase db) {

            //1.創建數據庫的語句
            //構造建表語句
            String creaTTable = "create table user (_id integer PRIMARY KEY AUTOINCREMENT NOT NULL,name varchar,age int)";
            db.execSQL(creaTTable);

            //2.初始化參數 ContentValues
            ContentValues cv = new ContentValues();

            cv.put("name","tom");
            cv.put("age", "20");
            //返回id long型  如果不成功返回-1
            //1-表名
            //2-空列的默認值
            //3-字段和值的key/value集合
            Long l = db.insert("user", null, cv);
            Toast.makeText(Activitydatashujuku.this, "id="+l, Toast.LENGTH_LONG).show();

            //2.初始化數據

        }

        //升級數據庫
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        }
    }

    //創建數據庫
    public void chuangjiansjkonclick(View view)
    {
        //創建  實現工具類
        DBHelper dh = new DBHelper("test.db",1);

        //連接數據庫 獲取數據庫實例
        //getWritableDatabase() 數據寫滿會報錯
        //getReadableDatabase() 數據寫滿不會報錯
        SQLiteDatabase sd = dh.getWritableDatabase();
        sd.close();
} }

 

 

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com