sqlite模糊查询与分页
来源:互联网 发布:js刷新form表单 编辑:程序博客网 时间:2024/05/22 08:30
sqlite模糊查询与分页
/**
*
* @paramqueryWords 要查询的关键词(中英文都可以)
* @paramcurItem 当前查询到的item 所在位置
* @paramsizeRequest 每次请求查询的数据行数
* @return 返回值是一个List,里面保存的是一条条记录
*
* @paramqueryWords 要查询的关键词(中英文都可以)
* @paramcurItem 当前查询到的item 所在位置
* @paramsizeRequest 每次请求查询的数据行数
* @return 返回值是一个List,里面保存的是一条条记录
*/
publicList<Glossary> findDBManagerWords(String queryWords ,intcurItem,intsizeRequest) {
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(DBManager.DB_PATH+"/"+ DBManager.DB_NAME,null);// 获取导入的数据库操作对象
SQLiteDatabase db = database;
// //如果只对数据进行读取,建议使用此方法
dbGlossary=newArrayList<Glossary>();
if(dbGlossary!=null) {
dbGlossary.clear();// 如果列表里有数据,重新加载前应清空
}
// 查询glossary这张数据表
Cursor cursor = db.rawQuery("select * from glossary where glo_EN_Name like ? or glo_CN_Name like ? or glo_description like ? limit ?,?",newString[] { "%"
+ queryWords +"%","%"+ queryWords +"%","%"+queryWords + "%",String.valueOf(curItem),String.valueOf(sizeRequest)});
//select查询返回的是一个cursor,通过对cursor 进行循环,可以解析出每一个字段
while(cursor.moveToNext()) {String str_glo_CN_Name = cursor.getString(cursor.getColumnIndex("glo_CN_Name"));
String str_glo_EN_Name = cursor.getString(cursor.getColumnIndex("glo_EN_Name"));
String str_glo_description = cursor.getString(cursor.getColumnIndex("glo_description"));
//将一条记录里的每一个字段保存到glossary这个对象中,该对象可能还有其他属性,没有赋值的话就是默认值
Glossary glossary =newGlossary();glossary.setGloCnName(str_glo_CN_Name);
glossary.setGloEnName(str_glo_EN_Name);
glossary.setGloDescription(str_glo_description);
//将对象保存添加进List中
dbGlossary.add(glossary);}
cursor.close();
// db.close();
if(db.isOpen()) {
db.close();
}
//返回List
returndbGlossary;}
以上的findDBManagerWords()函数中,最重要的是下面这句话:
Cursor cursor = db.rawQuery(
"select * from glossary where glo_EN_Name like ? or glo_CN_Name like ? or glo_description like ? limit ?,?",newString[] { "%"+ queryWords +"%","%"+ queryWords +"%","%"+queryWords +"%",String.valueOf(curItem),String.valueOf(sizeRequest)});
"select * from glossary where glo_EN_Name like ? or glo_CN_Name like ? or glo_description like ? limit ?,?",newString[] { "%"+ queryWords +"%","%"+ queryWords +"%","%"+queryWords +"%",String.valueOf(curItem),String.valueOf(sizeRequest)});
rawQuery()的定义形式如下
public Cursor rawQuery (String sql, String[] selectionArgs)
sql :the SQL query. The SQL string must not be ; terminated
selectionArgs : You may include ?s in where clause in the query, which will be replaced by the values from selectionArgs. The values will be bound as Strings.
该函数第一个字段 sql 是我们用来查询时使用的 SQL语句,要注意的是,用select 语句时,会涉及到查询条件,条件里的参数我们都用问号(?)来代替,
具体问号里面是哪个关键词,要放在函数的第二个参数selectionArgs当中~~
selectionArgs是一个字符串数组,数组里的每个元素都是字符串(如果查询条件中某个参数是int类型的,可以用String.valueOf(sizeRequest) 方式来转换)
上面语句还涉及到select的模糊查询,
将会对glo_EN_Name,glo_CN_Name,glo_description这几个字段进行模糊查询,
"%" + queryWords +"%" 的意思是,只要字段中包含queryWords这个关键字,那么就会被检索出来,
前后的两个百分号代表关键字之前或之后可以有任意多个字符
0 0
- sqlite模糊查询与分页
- mongdb模糊查询与分页
- MVC与EF_模糊查询和分页
- Android sqlite模糊查询
- SQLite 模糊查询
- SQLite模糊查询
- SQLite模糊查询
- SQLite使用模糊查询
- SQLite模糊查询
- mySQL分页机制与模糊查询+oracle分页机制与模糊查询
- hibernateTemplate 模糊分页查询
- MyBatis模糊查询分页
- 模糊查询+分页
- ssh分页+模糊查询
- 分页 模糊查询
- AutoCompleteTextView可以直接与sqlite数据库绑定 模糊查询
- Android之Sqlite模糊查询
- Android之Sqlite模糊查询
- web安全攻防实战技巧
- Maven常用命令
- web页面优化
- QT 扫描指定目录windows脚本
- head first design patterns(2)
- sqlite模糊查询与分页
- ueditor简单尝试
- Faster R-CNN学习笔记
- 外观模式(结构型)
- Unity优化大全(三)之CPU-Physics
- opencv学习(二十九)之灰度图转化为二值图adaptiveThreshold
- 百度地图 右键事件,右键标线,获取线编辑的点数据
- 当Linux内存耗尽时
- Windows server 2008 R2 登录密码恢复