当前位置:数据库 > SQLite >>

android SQLite中的一个疑问

Cursor cursor = db.rawQuery("select * from person where name like ? and age=?", new String[]{"张三", "4"}); 这是一个查询语句。疑问是:定义中age的类型是integer,为什么后面的是string类型的数组,而不是Object数组,即new Objece[]{"张三",4}.求解,谢谢
追问:后来看了下帮助文档。
貌似execSQL()方法中传入的参数就是(string sql,Object[] bindArgs)
而rawQuery()方法中传入的参数就是(String sql, String[] selectionArgs)
这样疑问就解决了。
答案:这里SQLite以SQL语言为交换格式。
每一句SQL是一段文本。文本就需要把int float的基础类型以其文本形态表示出来
 
等同于直接输入
"select * from person where name like "+"张三"+"and age=" +"4" 
我故意用+号说明字符串/文本的连接动作
这里用?代入符是防止SQL注入的设计
其他:这个是Google这样设计的,都以字符串的形式传入,即使你传入的是Object,他在最后进行SQL语句处理的时候还是要变成String 

上一个:sqlite和mysql有关系吗? 能代替mysql运行织梦程序吗?
下一个:C# sqlite数据库问题

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,