搜索母鸡“SQLite的”单程纪录使用Android应用保存数据
使用Android的SQLite的数据库“”?
这将是下面的文章续集。
母鸡的SQLiteOpenHelper使用的“SQLite的”数据存储Android应用程序的方法之一
编辑,更新和删除如何使用“SQLite的”单程Android应用保存数据的其他行
到目前为止,我们已经和数据库的描述是开放的,更新和删除记录添加。
这一次,我们将描述的搜索语句的选择,在SQL所指的纪录。
不能无条件地说,我认为交易数据库,有大量的场景来实现的大部分代码,我不选择此。
从这个示例代码所示,“ 母鸡SQLiteOpenHelper使用的SQLite“的一种方式,以节省Android应用程序”的数据,你应张贴在示例代码,它创建一个实例已经SQLiteDatabase类型。
变量名和康体发展局。
此外,表的定义,“bookmarklist”表名和列2列和行的_id书签存在。
※对于_ID列,文章“请参阅“ 使用SQLite Android应用程序中创建的表时,要注意的另一点 。
搜索记录,搜索结果后,将返回作为实例光标。
如何得到光标这种情况下,因为有两个大的,我会告诉你如何,第一。
使用()SQLiteDatabase.query的
第一个,告诉你如何使用()方法首先SQLiteDatabase.query。
最后的String []列=新的String [] {“的_id”,“书签”};
字符串,其中=“书签怎么样?”;
字符串参数=“%的Android%”;
光标C =
sdb.query(“bookmarklist”,列,其中,新的String [] {参数}
NULL,NULL,“_id DESC”,“10”);
第一个参数()方法是表名称SQLiteDatabase.query。
第二个参数指定检索(列名,字段名)数组的列名。
记录到第三个参数指定的标准,获得第四个参数。
这一次,我们要条件,一个字符串,其中包含的短语,“机器人”的书签字符串。
第五个参数指定的条款组。
第六个参数指定的条款有。
第七个参数指定的条文顺序。
第八个参数,可以指定(要检索的最大记录数)的条款限制。
如果你不想使用,指定一空。
并表示在SQL语句处理,将是如下。
选择的_id,书签
从bookmarklist
其中书签像'%的Android%
为了通过的_id递减
限制10
如何操作如下所述的游标对象。
()SQLiteDatabase.rawQuery
下面介绍如何使用()方法rawQuery所以。
rawQuery()方法是,从字面上看,使用的原料查询。
sqlstr =“选择的_id,书签”字符串+
“从bookmarklist的+
凡书签像“机器人%%'”+“
“订单”的_id递减+
“LIMIT 10”;
光标C = sdb.rawQuery(sqlstr);
()方法的参数是SQL的声明SQLiteDatabase.rawQuery。
我个人认为,反而容易比上面的query()方法,如果使用的。
query()方法,均值,这是很好的,如果你给什么,哪些参数的参数? 我不似乎是不应该审查和Ichiichi()方法是明确rawQuery。
此外,如使用左外连接和内部联接,当SQL就像加入多个表,你会是更好的()rawQuery本。
这可能是爱的爱,在Android应用程序使用SQL程度似乎不那么难,我发现()rawQuery的可以执行原始SQL,无论它是很好的可读性。
个人而言,我是结束。
顺便说一下,()是一份声明中只选择rawQuery。
插入,更新,删除等,使用()方法execSQL。
欲了解更多信息,请参阅下文。
编辑,更新和删除如何使用“SQLite的”单程Android应用保存数据的其他行
所以,让我们看看光标实例的基本用法。
使用光标实例
我认为基本上,使用将开始把检索到的记录在一个循环结束,做的东西。
像下面的例子,请参阅示例代码。
/ /执行rawQuery或()查询
可选 - 光标C =;
(c.moveToFirst()){
做{
ID = c.getLong(c.getColumnIndex(“的_id”));
字符串书签c.getString(c.getColumnIndex(“书签”));
system.out.println(ID +“:”+书签);
}虽然(c.moveToNext());
}
但也只是简单获得的所有记录,让我们来看看在从上面的标准输出。
首先,在第一句,如果它已经运行()光标。MoveToFirst。
这意味着,移动光标所取得的成果开始。
如果成功,将返回真。
后续处理,执行(后本moveToFirst的成功)。
顺便说一下,如果检索的记录数为0,()的返回值是假的moveToFirst。
其次,它已经成为一个循环后判断。
言外之意是光标。使用MoveToNext()被调用,将光标移动到下一个记录。
返回值()返回一个真正的移动光标,如果有一个纪录本使用MoveToNext旁边。
返回false,如果没有下一条记录。
顺便说一下,并判决后的第一条记录的处理。
加工提取记录的内容,根据每一列,使用等)调用getInt,getString()方法,getLong(类型。
参数是一个入列的索引,无论是在第二列在短什么? 是一个数字。
这,与列名的名称,你可以得到()getColumnIndex。
迂回是一种规范·别提。
没有采取过载我,即使你在参数指定的列名,为什么呢? 只想说。
当然,如果你知道的指数,而且在不使用的方法才能正常工作,即使我改变表定义在中间无空格写的好,他们会更好地实施这次我觉得无论是不是。
我认为,例如一个servlet或JSP,你可以毫不费力地理解,如果你有在使用DB系统的经验。
然而,这是我的理解是内置的移动,到现在为止,我没有处理好与数据库,或者是一般理解。











