‘壹’ android开发怎么查看和管理sqlite数据库
在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看。android项目中的sqlite数据库位于/data/data/项目包/databases中。
使用DDMS导出sqlite数据库。
1、首先打开android项目的调试模式,然后找到显示DDMS:
选择DDMS
2、切换到DDMS,显示File Explorer窗口,找到/data/data/
然后找到程序包的文件夹,打开databases,就能看到sqlite数据库文件了。选择将其导出。
这样就把sqlite数据库文件以文件的方式导出来了,然后使用sqlite界面管理工具如sqlite administrator、sqlite man或者firefox插件sqlite manager等打开就可以了。
使用adb工具访问sqlite数据库
Android Debug Bridge(ADB)是Android的一个通用调试工具,它可以更新设备或模拟器中的代码,可以管理预定端口,可以在设备上运行shell命令,我们知道android是基于linux内核,它的内部文件结构也是采用linux文件组织方式,因此访问它的文件结构需要使用shell。这次我们就会用shell来访问android应用中的sqlite数据库文件。
1、运行cmd,切换到android-sdk目录,运行adb.exe,加上参数shell,出现#号就代表进入了shell命令模式,注意adb要在Android模拟器运行时才能进入shell:
2、shell命令记住两个基本命令ls和cd,类似windows命令提示行中的dir和cd,代表列出当前目录下文件列表和进入到指定目录。了解这两个命令之后,就可以找到data/data/项目包名/databases:
找到数据库文件:
接下来就是使用sqlite管理工具来进行操作了。键入sqlite3 数据库名就进入了sqlite管理模式了。
在android的sdk中自带了sqlite3.exe,这是sqlite的官方管理工具,它是一个命令行工具。为了使用方便,将其路径注册到系统环境变量path中,即将;%Android_Home%加在Path中,这样只样运行sqlite3,就能直接打开sqlite管理工具了。
sqlite管理数据库篇
sqlite命令行工具默认是以;结束语句的。所以如果只是一行语句,要在末尾加;,或者在下一行中键入;,这样sqlite命令才会被执行。
sqlite常用命令:
.tables--查看数据库的表列表
.exit--退出sqlite命令行
‘贰’ android开发sqlite查询表中某一字段的所有数据,并以数组形式表示
select 列名 from 表名 where 条件(就是你所说的列中某个值满足的条件)。列的顺序是建表时,语句创建的顺序决定的。查询出来的列的顺序,是你查询时写的字段的顺序。如下:
表中字段顺序:
create table user(id int primary key,name text);这张表字段顺序就是id,name。
再将获取的数据放入数组中。
建议使用三方数据库框架,要简单很多。
Android Study 之 玩转GreenDao 3.2.2 点滴提升逼格~
http://www.apkbus.com/blog-904057-67980.html
‘叁’ android连接sqlite数据库,怎么查询数据库里面的数据
用DatabaseHelper类,获得数据库实例,然后用query方法查询,具体参数看api吧。另外别忘记加权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
‘肆’ android的sqlite的查询全部字段,可以不可以用*代替啊我觉得把所有字段全部写出来很麻烦啊
朋友,你好,sqlite支持用SQL 语言的。所以 * 是可以代替所有的。
‘伍’ android sqlite 查询所有数据没问题 可是条件查询却不行
注意这里:channelItem.getId(),这个是int类型
然后在查询的时候:
复制代码
/**
* 根据id查询数据
*/
public ChannelItem findById(int id) {
Cursor cursor = db.rawQuery("select * from HNBLife_Channel where id=?",
new String[]{String.valueOf(id)});
ChannelItem item = null;
while (cursor.moveToNext()) {
item = getItem(cursor);
}
return item;
}
复制代码
注意rawQuery方法的第二个参数:这里是String类型。
所以就出现了上述问题。
解决方案很简单,在插入的时候把int转换成String就可以了。
‘陆’ android 开发里的 SQLite数据库的一段 查询记录总数,谁能讲解下看不懂
//得到操作数据库的实例
SQLiteDatabase
db
=
dbOpenHelper.getReadableDatabase();
//
调用查找书库代码并返回数据源
Cursor
cursor
=
db.rawQuery("select
count(*)from
person",null);
//游标移到第一条记录准备获取数据
cursor.moveToFirst();
//
获取数据中的LONG类型数据
Long
count
=
cursor.getLong(0);
这些去查看Android的开发文档都有的
‘柒’ android sqlite数据库怎么查询某个表中的所有字段
Log.i("model.getInt",cursor1.getInt(cursor1.getColumnIndex("id"))+"...model.getString"+","+cursor1.getString(cursor1.getColumnIndex("id"))+",getO:"+cursor1.getInt(0)+".");
类似于这种取值方式
‘捌’ android SQLite数据库查询
这个很简单的:
//打开或创建test.db数据库
SQLiteDatabasedb = openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null);
//创建person表
db.execSQL("DROPTABLE IF EXISTS person");
db.execSQL("CREATE TABLE person (_idINTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age SMALLINT)");
//插入数据
Personperson = new Person();
person.name= "john";
person.age = 30;
db.execSQL("INSERT INTO person VALUES(NULL, ?, ?)",new Object[]{person.name, person.age});
//读取数据
Cursor c = db.rawQuery("SELECT* FROM person WHERE age >= ?", new String[]{"33"});
while (c.moveToNext()) {
int _id = c.getInt(c.getColumnIndex("_id"));
String name = c.getString(c.getColumnIndex("name"));
int age = c.getInt(c.getColumnIndex("age"));
Log.i("db", "_id=>" + _id + ", name=>" + name + ", age=>" + age);
}
c.close();
//关闭当前数据库
db.close();