Android SQLite数据库中的表详解

所属分类: 软件编程 / Android 阅读数: 47
收藏 0 赞 0 分享

Android SQLite数据库

前言

以前写PHP的时候,内置了print_r()和var_dump()两个函数用于打印输出任意类型的数据内部结构,现在做Android的开发,发现并没有这种类似的函数,对于数据库的查看很不方便,于是就写了一下查看数据库表的方法代码。

代码实现

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();

        //核心区
        //读取系统表 sqlite_master
        String sql = "select * from sqlite_master";
        Cursor cursor = db.rawQuery(sql, null);

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

        //打印当前数据库中的所有表
        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());
        }
      }
    });
  }

}

功能扩展

查看表是否存在

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;
}  

查看数据库中有哪些表

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;

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多