Android开发怎么查看和管理sqlite数据库查看器

2011年6月 移动平台大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。新浪广告共享计划>
广告共享计划
在Android中查看和管理sqlite数据库
浏览:在Android中查看和管理sqlite数据库 - walkingp - 博客园
在Eclipse中,windows--open
&perspective---OTHER--DDMS 中 查看。
但是在File
Explorer中打不开DATA目录
Permissions
&drwxrwx--x
我用 adb shell
提示“opendir failed, Permission
问题解决的方法是取得ROOT权限。说明如下:
浏览:android - Can't access data folder in the File Explorer of
DDMS using a Nexus One! - Stack Overflow
真机上用eclipse在file
explorer中展不开data文件夹,在模拟器中我的data文件夹是可以展开的
需要刷成root权限?
或者使用 安卓 导出数据库工具
浏览:SqliteGen - 自动生成Android SQLite数据库的访问类Eclipse插件 - OPEN开发经验库
浏览:Android ORM
工具----sqlitegen_Sql_&&安装sqlitegen
浏览:OrmLite - Lightweight Java ORM Supports Android and SQLite
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。可视化操作Android的SQLite数据库 - 水果硬糖 - ITeye博客
博客分类:
android移动设备开发数据库为SQLite,SQLite虽然不如Oracle或者MySql功能强大,但它轻量级,毕竟手机你不能期待它功能强大到哪种程度,除非未来手机内存能大到我们满足为止。
SQLite能不能像我们用PLSql一样可视化吗?当然可以,下面我就介绍一下,我们总不能总是通过SQLiteHelper在那里操作,我们需要看一眼数据库里面的数据真的变化了没有。
工具一:下载 SQLite Expert Professional 数据库可视化工具
下载地址:/
工具二:Eclipse的DDMS工具 可以查看你通过USB线练到电脑上的手机下的所有文件
在Eclipse上下载安装,地址:http://dl-/Android/eclipse/
好了 下面我们来可视化数据库操作。我先说一下android默认会把数据库文件放在工程名称命名的手机文件包下的databases中,但这个文件夹我们是无权查看的,所以我们要做的第一件事情就是给手机开放root权限
操作:打开windows下的cmd命令框
进行如下操作:解释:首先进入到你安装android包下的tools目录中执行adb shell命令
然后用su获得手机的root权限,有些手机此时会跳出一个框问你是否允许获得root权限,你点 是 然后你就获得了权限
这时候执行chomd -R 777的权限更改命令,后面的路径是你要开启权限的包的路径,后面的那个com.xxx.xxx是你自己的工程包名,下面有databases等文件,在DDMS中显示就是如下图:
这是在eclipse中打开DDMS视图后看见的,在data/data/com.xxx.xxx下面有databases,你的数据库文件都在里面,然后请看右上角,
椭圆地方,左边是把数据库导出到电脑,右边是把数据库导入到手机,怎么查看呢?好!我们用上了我们的SQLite Expert Perfasional工具啦。
这就是SQLite Expert 的可视化工具界面了 你可以编辑数据了!
That'ALL and ThankYou!
浏览 11802
浏览: 384723 次
来自: 杭州
浏览量:159165
美女,你确定可以这样做??还是 400 错误,可否配置发下?
[list][*]引用[*][flash=200,200][u ...
美女,你好厉害哦!灰常感谢!Android开发之sqlite数据库的应用 - Cactus_Lrg的博客 - CSDN博客
Android开发之sqlite数据库的应用
android开发
第一步先定义自己需要的表结构。
第二步定义helper方法,建表,定义更新表的内容
第三步定义数据对象,set、get
第四步定义数据库的适配器,定义增删查改方法,方便SQLitedatabase对象直接调用
1.创建SQLiteDatabase对象,并调用getWritableDatabase 或getReadableDatabase方法
SQLiteDatabase db=dbhelper.getWritableDatabase();
2.增: 创建ContentValues对象values,往values里放值,让后调用db.insert()方法
删:找到删除条件,调用db.delete()方法
创建ContentValues对象values,往values里放值,同时确认要修改的条件
查:确认要查的条件,调用db.query()方法获取内容,并赋值给一个Cursor对象。 若只有一个查询结果,直接复制给数据对象,若有多行值,创建ArrayList对象,放入循环放入其中。
3.调用db.close()
(若创建了Cursor对象c,需要需关闭,c.close())
第五步 调用适配器方法
1.创建一个DatabaseAdapter对象,并实例化dbAdapter=new DatabaseAdapter(this);
2.调用方法:
增:创建一个数据对象,并赋值,然后调用dbAdapter.add()
删:调用dbAdapter.delete()
改:创建新的数据对象,赋值,然后调用dbAdapter.updata();
查:调用查方法,并赋值Dog dog=dbAdapter.findById(1);若有多行值,则创建ArrayList对象,循环赋值
代码如下:
package com.Cactus.
import android.provider.BaseC
public final class PetMetaData
private PetMetaData(){}
public static abstract class DogTable implements BaseColumns
public static final String TABLE_NAME = "dog";
public static final String NAME = "name";
public static final String AGE = "age";
package com.Cactus.
import android.content.C
import android.database.sqlite.SQLiteD
import android.database.sqlite.SQLiteDatabase.CursorF
import android.database.sqlite.SQLiteOpenH
public class DatabaseHelper extends SQLiteOpenHelper{
private static final String DB_NAME="pet.db";
private static final int VERSION=1;
private static final String CREATE_TABLE_DOG="CREATE TABLE dog(_id INTEGER PRIMARY KEY AUTOINCREMENT"+
",name TEXT,age INTEGER)";
private static final String DROP_TABLE_DOG="DROP TABLE IF EXISTS dog";
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, VERSION);
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_DOG);
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(DROP_TABLE_DOG);
db.execSQL(CREATE_TABLE_DOG);
package com.Cactus.
public class Dog {
private int
private int
public Dog()
public Dog(int id,String name,int age)
this.name=
public Dog(String name, int age) {
this.name =
this.age =
public int getId() {
public void setId(int id) {
public String getName() {
public void setName(String name) {
this.name =
public int getAge() {
public void setAge(int age) {
this.age =
public String toString() {
return "Dog [id=" + id + ", name=" + name + ", age=" + age + "]";
package com.Cactus.sqlitetest
import java.util.ArrayList
import android.content.ContentValues
import android.content.Context
import android.database.Cursor
import android.database.sqlite.SQLiteDatabase
//第四步定义数据库的适配器,定义增删查改方法,方便SQLitedatabase对象直接调用
public class DatabaseAdapter {
private DatabaseHelper dbhelper
public DatabaseAdapter(Context context) {
dbhelper=new DatabaseHelper(context)
1.创建SQLiteDatabase对象,并调用getWritableDatabase 或getReadableDatabase方法
SQLiteDatabase db=dbhelper.getWritableDatabase()
2.增: 创建ContentValues对象values,往values里放值,让后调用db.insert()方法
删:找到删除条件,调用db.delete()方法
创建ContentValues对象values,往values里放值,同时确认要修改的条件
查:确认要查的条件,调用db.query()方法获取内容,并赋值给一个Cursor对象。 若只有一个查询结果,
直接复制给数据对象,若有多行值,创建ArrayList对象,放入循环放入其中。
3.调用db.close()
(若创建了Cursor对象c,需要需关闭,c.close())
public void add(Dog dog)
SQLiteDatabase db=dbhelper.getWritableDatabase()
ContentValues values=new ContentValues()
values.put(PetMetaData.DogTable.NAME, dog.getName())
values.put(PetMetaData.DogTable.AGE, dog.getAge())
db.insert(PetMetaData.DogTable.TABLE_NAME, null, values)
db.close()
public void delete(int id)
SQLiteDatabase db=dbhelper.getWritableDatabase()
String whereClause=PetMetaData.DogTable._ID+"+?"
String[] whereArgs={String.valueOf(id)}
db.delete(PetMetaData.DogTable.TABLE_NAME, whereClause, whereArgs)
db.close()
public void updata(Dog dog)
SQLiteDatabase db=dbhelper.getWritableDatabase()
ContentValues values=new ContentValues()
values.put(PetMetaData.DogTable.NAME, dog.getName())
values.put(PetMetaData.DogTable.AGE, dog.getAge())
String whereClause=PetMetaData.DogTable._ID+"+?"
String[] whereArgs={String.valueOf(dog.getId())}
db.update(PetMetaData.DogTable.TABLE_NAME, values, whereClause, whereArgs)
db.close()
public Dog findById(int id)
SQLiteDatabase db=dbhelper.getReadableDatabase()
String[] columns={PetMetaData.DogTable._ID,PetMetaData.DogTable.NAME,PetMetaData.DogTable.AGE}
Cursor c=db.query(true, PetMetaData.DogTable.TABLE_NAME, columns, PetMetaData.DogTable._ID+"=?", new String[]{String.valueOf(id)}, null, null, null, null, null)
Dog dog=null
if(c.moveToNext())
dog=new Dog()
dog.setId(c.getInt(c.getColumnIndexOrThrow(PetMetaData.DogTable._ID)))
dog.setAge(c.getInt(c.getColumnIndexOrThrow(PetMetaData.DogTable.AGE)))
dog.setName(c.getString(c.getColumnIndexOrThrow(PetMetaData.DogTable.NAME)))
db.close()
return dog
public ArrayList&Dog& findAll()
SQLiteDatabase db=dbhelper.getReadableDatabase()
String[] columns={PetMetaData.DogTable._ID,PetMetaData.DogTable.NAME,PetMetaData.DogTable.AGE}
Cursor c=db.query(true, PetMetaData.DogTable.TABLE_NAME, columns, null, null, null, null, null, null, null)
ArrayList&Dog& dogs=new ArrayList&Dog&()
Dog dog=null
while(c.moveToNext())
dog=new Dog()
dog.setId(c.getInt(c.getColumnIndexOrThrow(PetMetaData.DogTable._ID)))
dog.setAge(c.getInt(c.getColumnIndexOrThrow(PetMetaData.DogTable.AGE)))
dog.setName(c.getString(c.getColumnIndexOrThrow(PetMetaData.DogTable.NAME)))
dogs.add(dog)
db.close()
return dogs
package com.Cactus.
import java.util.ArrayL
import android.app.A
import android.os.B
import android.util.L
import android.view.V
import android.view.View.OnClickL
import android.widget.B
import android.widget.TextV
public class MainActivity extends Activity {
private DatabaseAdapter dbA
private Button add,delete,updata,findById,findA
private TextV
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbAdapter=new DatabaseAdapter(this);
add=(Button)findViewById(R.id.add);
delete=(Button)findViewById(R.id.delete);
updata=(Button)findViewById(R.id.updata);
findById=(Button)findViewById(R.id.findById);
findAll=(Button)findViewById(R.id.findAll);
text=(TextView)findViewById(R.id.textView1);
addListener addlistener=new addListener();
add.setOnClickListener(addlistener);
updataListener updatalistener =new updataListener();
updata.setOnClickListener(updatalistener);
deleteListener deletelistener=new deleteListener();
delete.setOnClickListener(deletelistener);
findByIdListener findbyidlistener =new findByIdListener();
findById.setOnClickListener(findbyidlistener);
findAllListener findalllistener=new findAllListener();
findAll.setOnClickListener(findalllistener);
class addListener implements OnClickListener
public void onClick(View v) {
Dog dog=new Dog("beibei", 5);
dbAdapter.add(dog);
class deleteListener implements OnClickListener
public void onClick(View v) {
dbAdapter.delete(1);
class updataListener implements OnClickListener
public void onClick(View v) {
Dog dog=new Dog("jingjing", 5);
dbAdapter.updata(dog);
class findByIdListener implements OnClickListener
public void onClick(View v) {
Dog dog=dbAdapter.findById(1);
System.out.print(dog);
Log.v(dog.getName(), "------------------------");
class findAllListener implements OnClickListener
public void onClick(View v) {
ArrayList&Dog& dogs=dbAdapter.findAll();
int size=dogs.size();
for(int i=0;i&i++)
Log.v(dogs.get(i).getName(), "---------------------");
我的热门文章
即使是一小步也想与你分享Android 如何对sqlite数据库进行增删改[insert、update和delete] 操作 -
- ITeye博客
博客分类:
在android开发中,我们常常用sqlite来存储用户信息,如何进行sqlite常规操作呢,请参阅下面的示例代码:
package com.db.
import android.content.ContentV
import android.content.C
import android.database.C
import android.database.sqlite.SQLiteD
import android.database.sqlite.SQLiteDatabase.CursorF
import android.database.sqlite.SQLiteOpenH
import android.util.L
public class DBHelper extends SQLiteOpenHelper {
final private static String mDbName="imgfornote" ;
final private static int mDbVersion=1 ;
private static DBHelper mInstance=
private final static String mTUserPhoto="UserPhoto" ;
final private static String mCreateSqlForNoteClass="create table if not exists NoteClass(classId integer primary key asc autoincrement,className NVARCHAR(100),rowTime timestamp default (datetime('now', 'localtime')))" ;
final private static String mCreateSqlForUserPhoto="create table if not exists UserPhoto(photoId integer primary key asc autoincrement,photoName VARCHAR(200),userPt VARCHAR(200),title VARCHAR(255),classId integer,content NVARCHAR(250),tag NVARCHAR(200),remark text,status integer default 0,rowTime timestamp default (datetime('now', 'localtime')))" ;
final private static String[] mInsertSqlForNoteClass={"insert into NoteClass(className) values('默认分类[私有]');" , "insert into NoteClass(className) values('读书笔记[私有]');" , "insert into NoteClass(className) values('电子资料[公开]');" };
private DBHelper(Context context, CursorFactory factory) {
super(context, mDbName, factory, mDbVersion);
public static DBHelper GetInstance(Context context, SQLiteDatabase.CursorFactory factory)
if(mInstance==null){
mInstance = new DBHelper(context,factory);
public void onCreate(SQLiteDatabase db) {
db.execSQL(mCreateSqlForNoteClass);
db.execSQL(mCreateSqlForUserPhoto);
//初始化数据
for(int i=0 ;i&mInsertSqlForNoteClass.i++)
db.execSQL(mInsertSqlForNoteClass[i]);
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
private Cursor ExecSQLForCursor(String sql, String[] selectionArgs){
SQLiteDatabase db =getWritableDatabase();
Log.i("ExecSQLForCursor" ,sql);
return db.rawQuery(sql, selectionArgs);
private void ExecSQL(String sql){
SQLiteDatabase db =getWritableDatabase();
ExecSQL(sql,db);
}catch(Exception e){
Log.e("ExecSQL Exception" ,e.getMessage());
e.printStackTrace();
private void ExecSQL(String sql,SQLiteDatabase db ){
db.execSQL(sql);
Log.i("ExecSQL" ,sql);
}catch(Exception e){
Log.e("ExecSQL Exception" ,e.getMessage());
e.printStackTrace();
//添加照片信息
public long InsertUserPhoto(String photoName,String title){
SQLiteDatabase db =getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("photoName" , photoName);
cv.put("title" , title);
return db.insert(mTUserPhoto, null, cv);
//查询照片信息
public Cursor SearchPhoto(int row,String sort){
Cursor cur =
String ord = (sort==null|| sort.toLowerCase().startsWith("a" ))? "asc" : "desc" ;
String sql = "select * from UserPhoto order by photoId " +
String[] args = {String.valueOf(row)};
if(row&0 ){
sql +=" limit ?" ;
cur = ExecSQLForCursor(sql,args);
}catch (Exception e) {
Log.e("SearchPhoto Exception" ,e.getMessage());
e.printStackTrace();
//修改照片信息
public int UpdateUserPhoto(int photoId,int classId,String title,String content, String tag){
SQLiteDatabase db =getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("classId" , classId);
cv.put("title" , title);
cv.put("content" , content);
cv.put("tag" , tag);
String[] args = {String.valueOf(photoId)};
return db.update(mTUserPhoto, cv, "photoId=?" ,args);
//删除照片信息
public int DeleteUserPhoto(int photoId){
SQLiteDatabase db =getWritableDatabase();
String[] args = {String.valueOf(photoId)};
return db.delete(mTUserPhoto, "photoId=?" , args);
主要用到的类:SQLiteOpenHelper、SQLiteDatabase及ContentValues
浏览 13199
浏览: 642668 次
所以这种情况是不使用launchMode为singleTask ...

我要回帖

更多关于 如何查看sqlite数据库 的文章

 

随机推荐