当前位置:首页 » 安卓系统 » android数据库查询

android数据库查询

发布时间: 2022-05-18 00:07:57

① Android 中数据库查询方法query() 中的selectionArgs 参数只能在编译之前确定,这怎么实现动态查询

网上找来的
Android 中涉及数据库查询的地方一般都会有一个 query() 方法,而这些 query 中有大都(全部?)会有一个参数 selectionArgs,比如下面这个 android.database.sqlite.SQLiteDatabase.query():
view plain to clipboardprint?
public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
    selection 参数很好理解,就是 SQL 语句中 WHERE 后面的部分,即过滤条件, 比如可以为 id=3 AND name='Kevin Yuan' 表示只返回满足 id 为 3 且 name 为 "Kevin Yuan" 的记录。
    再实际项目中像上面那样简单的“静态”的 selection 并不多见,更多的情况下要在运行时动态生成这个字符串,比如
view plain to clipboardprint?
public doQuery(long id, final String name) { 
  mDb.query("some_table", // table name 
        null, // columns 
        "id=" id " AND name='" name "'", // selection 
        //...... 更多参数省略 
  ); 
}
public doQuery(long id, final String name) {
  mDb.query("some_table", // table name
        null, // columns
        "id=" id " AND name='" name "'", // selection
        //...... 更多参数省略
  );
}
在这种情况下就要考虑一个字符转义的问题,比如如果在上面代码中传进来的 name 参数的内容里面有单引号('),就会引发一个 "SQLiteException syntax error .... "。
    手工处理转义的话,也不麻烦,就是 String.replace() 调用而已。但是 Android SDK 为我们准备了 selectionArgs 来专门处理这种问题:
view plain to clipboardprint?
public void doQuery(long id, final String name) { 
  mDb.query("some_table", // table name 
        null, // columns 
        "id=" id " AND name=?", // selection 
        new String[] {name}, //selectionArgs 
        //...... 更多参数省略 
  ); 
  // ...... 更多代码 
}
public void doQuery(long id, final String name) {
  mDb.query("some_table", // table name
        null, // columns
        "id=" id " AND name=?", // selection
        new String[] {name}, //selectionArgs
        //...... 更多参数省略
  );
  // ...... 更多代码
}
也就是说我们在 selection 中需要嵌入字符串的地方用 ? 代替,然后在 selectionArgs 中依次提供各个用于替换的值就可以了。在 query() 执行时会对 selectionArgs 中的字符串正确转义并替换到对应的 ? 处以构成完整的 selection 字符串。 有点像 String.format()。
    不过需要注意的是 ? 并不是“万金油”,只能用在原本应该是字符串出现的地方。比如下面的用法是错误的:
view plain to clipboardprint?
public void doQuery(long id, final String name) { 
  mDb.query("some_table", // table name 
        null, // columns 
        "? = " id " AND name=?", // selection XXXX 错误!? 不能用来替换字段名 
        new String[]{"id", name}, //selectionArgs 
      //...... 更多参数省略 
  ); 
  // ...... 更多代码 
}

② android 怎么查看数据库中的数据

1,进入到控制台中,输入adb shell,进入到命令模式的环境中
2,输入:cd /data/data/
3, 选择你所在的数据库文件,比如我的com.android.homework, 输入命令:cd com.android.homework
4, 可以使用ls -l 命令查看当前目录中的文件
5,输入: cd databases 进入到数据库文件中
6, ls -l 显示你数据库中你建立的数据库
7, sqlite3 info.db 进入到你选择的数据库中
8, .tables :查看你建的表
9, select * from table_name;s 可以查看整个表的信息
10, 使用其他的SQL语句可以进一步对表进行操作,注意SQL语句必须用分号(;)结尾

③ android APP如何连接服务器上的SQL数据库,直接在手机上查询、更新数据库信息

后台操作数据库的增删改查,然后写成接口,android端来调用接口,返回数据显示就ok了

④ android 怎么查看sqlite数据库

在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命令行

其他命令可随时.help查看帮助。sql命令可直接在此命令行上执行即可

⑤ android 数据库如何去查找某一条数据

select * from tableName where id = '1';唯一特定的字段来确定一条记录。

结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes
kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,
可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

⑥ 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();

⑦ Android中对数据库进行条件查询

android读取数据库可以使用sqlite一些api进行读取,实例如下:
/**
*
查找一条数据
*
@param
uid
*/
public
user
find(integer
uid){
sqlitedatabase
db=dbopenhelper.getreadabledatabase();
//创建数据库辅助类
cursor
cursor
=db.rawquery("select
*
from
user
where
uid=?",
new
string[]{uid.tostring()});
//创建一个游标
if(cursor.movetofirst()){
//循环遍历查找数组
int
uid2=cursor.getint(cursor.getcolumnindex("uid"));
string
uname=cursor.getstring(cursor.getcolumnindex("uname"));
string
uaddress=cursor.getstring(cursor.getcolumnindex("uaddress"));
user
user=new
user();
user.setuid(uid2);
user.setuname(uname);
user.setuaddress(uaddress);
return
user;
}
cursor.close();
return
null;
}

⑧ 如何使用adb命令查看android中的数据库

1,进入到控制台中,输入adb shell,进入到命令模式的环境中

2,输入:cd /data/data/

3, 选择你所在的数据库文件,比如我的com.android.homework, 输入命令:cd com.android.homework

4, 可以使用ls -l 命令查看当前目录中的文件

5,输入: cd databases 进入到数据库文件中

6, ls -l 显示你数据库中你建立的数据库

7, sqlite3 info.db 进入到你选择的数据库中

8, .tables :查看你建的表

9, select * from table_name;s 可以查看整个表的信息

10, 使用其他的SQL语句可以进一步对表进行操作,注意SQL语句必须用分号(;)结尾



如下图所示:

⑨ Eclipse开发android如何查询数据库

在android中先通过SQLiteOpenHelper建立数据库和表 然后用SQLiteOpenHelper对象去查询;
主要的两句代码如下:
SQLiteOpenHelper helper=new SQLiteOpenHelper();

helper.getWritableDatabase().execSQL("select score form S");

⑩ Android怎么查看手机中的本地数据库

这个需要你root手机,root手机后使用adb shell 能找到手机中database中的数据库XX.db文件,然后使用sqlite3命令打开,这些命令可以直接网络。前提你手机必须root
或者你使用虚拟机

热点内容
存储标准性 发布:2024-05-03 13:37:07 浏览:416
液碱存储 发布:2024-05-03 13:21:13 浏览:156
linux如何改配置文件 发布:2024-05-03 13:00:54 浏览:31
哪个安卓模拟器老爷机带得动 发布:2024-05-03 13:00:49 浏览:576
编程与实战 发布:2024-05-03 12:54:30 浏览:38
电脑开机有密码rpc服务器不可用 发布:2024-05-03 12:40:54 浏览:471
硬件的算法 发布:2024-05-03 12:34:28 浏览:388
支付密码为什么就六位 发布:2024-05-03 12:29:17 浏览:920
脚本找书 发布:2024-05-03 12:02:17 浏览:493
境外服务器租用怎么办 发布:2024-05-03 11:45:34 浏览:944