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;

}

博客名称:王乐平博客

博客地址:http://blog.lepingde.com

CSDN博客地址:http://blog.csdn.net/lecepin

时间: 2024-12-29 04:11:43

Android 代码实现查看SQLite数据库中的表的相关文章

Android 一键直接查看Sqlite数据库数据

本文主要介绍Android开发中如何一键直接查看sqlite数据库中的数据以及sqlite3的常用命令.1.原始查看sqlite数据方法Eclipse 菜单Window - Open Perspective - DDMS进入DDMS视图.然后File Explorer View中依次展开路径/data/data/package_name/databases/,将其中的db文件pull from device保存到电脑上,再使用navicat.SQLiteSpy或其他软件打开查看,整个过程相当复杂

查看 MySQL 数据库中每个表占用的空间大小

TABLE_SCHEMA : 数据库名TABLE_NAME:表名ENGINE:所使用的存储引擎TABLES_ROWS:记录数DATA_LENGTH:数据大小INDEX_LENGTH:索引大小 SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM TABLES WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名'

Android开发之通过Android的API对sqlite数据库的操作以及数据库事务的练习

一.通过Android的API对sqlite数据库的操作 通过已有的ContentValues类,实例一个对象value来调用其中内部的方法来操作sqlite数据库 代码: package com.example.databasedemo; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sql

Android数据存储引擎---SQLite数据库

目标:是否可以在PC端桌面上使用SQLite数据库制作一个财务文件? 目录: 来源: 实践: 总结和比较: SQLite数据简介 是什么,内部结构是怎样的,数据库和表的关系是什么 有什么用 常用的操作是什么 SQLite数据库使用 增 删 改 查 SQLite数据库实践上的优化措施 对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,使我们轻松完成对数据的存取. 步骤1,熟悉创建数据库表,熟悉相关的操作指令,实现对SQLite数据库的感性认识 创建一个包含简单内容的数

网络采集软件核心技术剖析系列(6)---将任意博主的全部博文下载到SQLite数据库中并通过Webbrower显示(将之前的内容综合到一起)

一 本系列随笔目录及本节代码下载 开发环境:VS2008 本节源码位置:https://github.com/songboriceboy/GatherAllStoreInDB 源码下载办法:安装SVN客户端(本文最后提供下载地址),然后checkout以下的地址:https://github.com/songboriceboy/GatherAllStoreInDB 系列文章提纲拟定如下: 1.如何使用C#语言获取博客园某个博主的全部随笔链接及标题:2.如何使用C#语言获得博文的内容:3.使用C#

Android——使用SQLiteDatabase操作SQLite数据库

除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n).char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. SQLite最大的特点是

通过adb shell操作android真机的SQLite数据库

要通过命令行直接操作android真机上的SQLite数据库,可以直接通过adb shell来完成,不过,前提是必须获得root权限. 另外,android系统其实就是linux的shell,这个应该大家都知道,不过一般情况下,在/system/xbin/目录下, 没有sqlite3命令,需要手动copy一个进去,通常情况下,需要两个文件 sqlite3.libncurses.so 解压后两个文件都有了,比如解压到:~/Downloads/sqlite3/ 然后就是通过下面的这些个命令,一步一步

查看MYSQL数据库中所有用户及拥有权限

查看MYSQL数据库中所有用户 mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; 查看数据库中具体某个用户的权限mysql> show grants for 'cactiuser'@'%';

关于SimpleCursorAdapter在sqlite数据库中取数据报错 : java.lang.IllegalArgumentException: column &#39;_id&#39; does not exist

_id列不存在 需要创建一个 id列 因为SQLlite数据库 的onCreate方法是在数据库不存在的时候才调用所以我们需要清除一下这个app 的数据 将数据清空 关于SimpleCursorAdapter在sqlite数据库中取数据报错 : java.lang.IllegalArgumentException: column '_id' does not exist