栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android SQLite数据库中的表详解

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap

Android SQLite数据库中的表详解

Android SQLite数据库

前言

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

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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());
 }
      }
    });
  }
 
}

功能扩展

查看表是否存在

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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;

查看数据库中有哪些表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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;
 
}
 
</string></string></string>

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://mshxw.com/it/160119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号