当前位置: 移动技术网 > IT编程>移动开发>Android > Android SQLite数据库中的表详解

Android SQLite数据库中的表详解

2019年07月24日  | 移动技术网IT编程  | 我要评论

无人岛物语,小熊门,全能奇才txt下载

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;

}

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网