經過SQL語句操做Sqlite數據庫

1、數據庫的建立java

數據庫版本爲1android

//Ctrl+Shift+U:大寫
    public  static  final String DATABASE_NAME ="zzw.db";
    public  static  final int VERSION_CODE =1;
    public  static  final String  TABLE_NAME ="employee";

DatabaseHelper.javasql

package com.example.databasedemo;


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import androidx.annotation.Nullable;

public class DatabaseHelper extends SQLiteOpenHelper {

    private static final String TAG="DatabaseHelper";

    /**
     *
     * @ context   上下文
     * @ name      數據庫名稱
     * @ factory   遊標工廠:能夠移動的指針,默認爲null
     * @ version   版本號
     */
    public DatabaseHelper(@Nullable Context context) {
        super(context, Constants.DATABASE_NAME, null, Constants.VERSION_CODE);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //第一次建立數據庫時調用
        //建立時的回調
        Log.d(TAG,"建立數據庫....");
        //建立數據庫表
        String sql ="create  table  "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer)";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        //升級數據庫時的回調
        Log.d(TAG,"升級數據庫....");
        //
        String  sql;
        switch (oldVersion){
            case 1:
                  sql ="alter table "+Constants.TABLE_NAME+" add phone integer";
                db.execSQL(sql);
                break;
            case  2:
                break;
        }

    }
}

 

第一次運行,無數據庫時的文件結構數據庫

 

 

建立數據庫app

 //建立數據庫
        DatabaseHelper helper =new DatabaseHelper(this);
        helper.getWritableDatabase();

 

建立表ide

 public void onCreate(SQLiteDatabase db) {
        //第一次建立數據庫時調用
        //建立時的回調
        Log.d(TAG,"建立數據庫....");
        //建立數據庫表
        String sql ="create  table  "+Constants.TABLE_NAME+"(_id integer,name varchar,age integer,salary integer)";
        db.execSQL(sql);
    }

 

 

 

 

建立數據庫後的文件結構測試

 

將zzw.db文件導出,並用SQLiteExpert打開this

 

 與咱們要建立的字段數一致spa

 

2、數據庫的升級指針

對數據庫進行升級

修改版本號爲2

//Ctrl+Shift+U:大寫
    public  static  final String DATABASE_NAME ="zzw.db";
    public  static  final int VERSION_CODE =2;
    public  static  final String  TABLE_NAME ="employee";

升級數據庫

 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        //升級數據庫時的回調
        Log.d(TAG,"升級數據庫....");
        //
        String  sql;
        switch (oldVersion){
            case 1:
                  sql ="alter table "+Constants.TABLE_NAME+" add phone integer";
                db.execSQL(sql);
                break;
            case  2:
                break;
        }

    }

 

 成功添加了phone字段

 

 3、Dao的增刪改查(SQL語句實現)

進行測試

MainActivity.java

package com.example.databasedemo;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

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

        //建立數據庫
        DatabaseHelper helper =new DatabaseHelper(this);
        helper.getWritableDatabase();

        Dao dao =new Dao(getApplicationContext());
//        dao.insert();
//        dao.update();
//        dao.query();
        dao.delete();
    }
}

Dao.java

package com.example.databasedemo;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

/**
 * 這個類用於對數據庫的增刪改查
 */
public class Dao {

    private final DatabaseHelper mHelper;
    private static final String TAG="Dao";
    public Dao(Context context){

        //建立數據庫
        //Ctrl+Alt+F,以後加回車,建立成員變量
        mHelper = new DatabaseHelper(context);

    }

    public  void insert(){
        SQLiteDatabase db = mHelper.getWritableDatabase();
        String sql="insert into "+Constants.TABLE_NAME+"(_id,name,age,salary,phone) values(?,?,?,?,?)";
        Object []obj={1,"zzw",19,2,1234567890};
        db.execSQL(sql,obj);
        db.close();
    }

    public  void delete(){
        SQLiteDatabase db = mHelper.getWritableDatabase();
        String sql="delete from "+Constants.TABLE_NAME+" where name = ?";
        Object []obj={"zzw"};
        db.execSQL(sql,obj);
        db.close();
    }

    public  void update(){
        SQLiteDatabase db = mHelper.getWritableDatabase();
        String sql="update "+Constants.TABLE_NAME+" set salary= ? where name = ?";
        Object []obj={3,"zzw"};
        db.execSQL(sql,obj);
        db.close();
    }

    public  void query(){
        SQLiteDatabase db = mHelper.getWritableDatabase();
        String sql="select * from "+Constants.TABLE_NAME+" where name = ?";
        String []obj={"zzw"};
        Cursor cursor = db.rawQuery(sql, obj);
        while (cursor.moveToNext()){
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String age = cursor.getString(cursor.getColumnIndex("age"));
            Log.d(TAG,"名字:"+name+"年齡:"+age);
        }
        cursor.close();
        db.close();
    }
}

 

插入數據

 

 

 修改數據

 

 查看數據

 

 刪除數據

相關文章
相關標籤/搜索