溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

深入淺析Android 項(xiàng)目中SQLite的數(shù)據(jù)表

發(fā)布時(shí)間:2020-11-20 15:27:35 來源:億速云 閱讀:128 作者:Leah 欄目:移動(dòng)開發(fā)

這篇文章給大家介紹深入淺析Android 項(xiàng)目中SQLite的數(shù)據(jù)表,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

Android SQLite數(shù)據(jù)庫(kù)

以前寫PHP的時(shí)候,內(nèi)置了print_r()和var_dump()兩個(gè)函數(shù)用于打印輸出任意類型的數(shù)據(jù)內(nèi)部結(jié)構(gòu),現(xiàn)在做Android的開發(fā),發(fā)現(xiàn)并沒有這種類似的函數(shù),對(duì)于數(shù)據(jù)庫(kù)的查看很不方便,于是就寫了一下查看數(shù)據(jù)庫(kù)表的方法代碼。

代碼實(shí)現(xiàn)

import java.util.Arrays;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class SecondActivity extends Activity {

  public static final String TAG = "Debug Info";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ((Button)findViewById(R.id.btnQue)).setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        MyDatabaseHelper dbhelper = new MyDatabaseHelper(SecondActivity.this, "BookStore.db", null, 1);
        SQLiteDatabase db = dbhelper.getWritableDatabase();

        //核心區(qū)
        //讀取系統(tǒng)表 sqlite_master
        String sql = "select * from sqlite_master";
        Cursor cursor = db.rawQuery(sql, null);

        //打印表的所有列名
        Log.i(TAG, Arrays.toString(cursor.getColumnNames()));

        //打印當(dāng)前數(shù)據(jù)庫(kù)中的所有表
        if (cursor.moveToFirst()) {
          do {
            String str = "";

            for (String item : cursor.getColumnNames()) {
              str += item + ": " + cursor.getString(cursor.getColumnIndex(item)) + "\n";
            }

            Log.i(TAG, str);

          } while (cursor.moveToNext());
        }
      }
    });
  }

}

功能擴(kuò)展

查看表是否存在

public Boolean tableIsExist(SQLiteDatabase db, String tableName){
  boolean result = false;
  Cursor cursor = null;

  if(tableName == null){
    return result;
  }

  String sql = "select count(*) from sqlite_master where type ='table' and name ='"+tableName.trim()+"'";
  cursor = db.rawQuery(sql, null);

  if(cursor.moveToNext()){
    if(cursor.getInt(0) > 0){
      result = true;
    }
  }

  return result;
}  

查看數(shù)據(jù)庫(kù)中有哪些表

public ArrayList<String> tablesInDB(SQLiteDatabase db){
  ArrayList<String> list = new ArrayList<String>();
  String sql = "select name from sqlite_master where type='table'";
  Cursor cursor = db.rawQuery(sql, null);

  if (cursor.moveToFirst()) {
      do {
        list.add(cursor.getString(0));
      } while (cursor.moveToNext());
    }

  return list;

}

關(guān)于深入淺析Android 項(xiàng)目中SQLite的數(shù)據(jù)表就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

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

AI