欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android SQLite数据库中的表详解

程序员文章站 2024-02-20 22:33:52
android sqlite数据库 前言 以前写php的时候,内置了print_r()和var_dump()两个函数用于打印输出任意类型的数据内部结构,现在做andro...

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;

}

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