您的位置:首页 > 其它

litePal的模糊查询个人见解

2015-10-14 16:18 281 查看
最近看到了郭神封装的litePal框架,而且现在也正在练习的项目中使用,感觉太方便了,查询全部的信息,一句代码即可实现,里面的很多功能博客中都有详细的介绍。以下是郭神litePla博客的地址:

转载请注明出处:/article/1375906.html

很多时候从数据表中查询都需要按条件来查询,郭神的博客中也有详细的介绍,最近在使用模糊查询的功能,博客中没有详细的介绍,以下是菜鸟自己的见解:

创建数据库、表博客中介绍的很清楚,这里就不说了,写了一个列子,

1,有张产品表(Product),里面有相应的字段,为了简单就加了几个字段,根据自己的需要可以添加。废话不多说。

public class Product extends DataSupport {

/** id **/

private int id;

/** 产品名 **/

private String productName;

/** 产品价格 **/

private float price;

/** 产品编码 **/

private int code;

/** 生产时间 **/

private int createTime;

/**

* get(),set()方法

*/

2,往表中添加几条测试数据,这里使用了for循环,所以添加的数据都会是笔记本1,笔记本2...等;

// 初始化数据

private void initData() {

// 添加几条测试数据

addData1();

addData2();

}

// 循环添加数据

private void addData2() {

Product pro = null;

for (int i = 0; i < 4; i++) {

pro = new Product();

pro.setId(2 + i);

pro.setProductName("笔记本" + i);

pro.setCode(32343213 + i);

pro.setPrice(8888 + i);

pro.setCreateTime(201555 + i);// 这里为了方便就直接把时间设置成int类型了

pro.save();

}

}

// 循环添加数据

private void addData1() {

Product pro = null;

for (int j = 0; j < 4; j++) {

pro = new Product();

pro.setId(1 + j);

pro.setProductName("笔记本电脑" + j);

pro.setCode(32343213 + j);

pro.setPrice(9999 + j);

pro.setCreateTime(201313 + j);// 这里为了方便就直接把时间设置成int类型了

pro.save();

}

}

3,页面上,根据输入的内容点击查询按钮查询相关信息,并在TextView上显示,为了方便我把list集合转换长json字符串了,需要用到GSON包。




4,比如需要查询表中的产品名称和时间的字段,根据输入的内容,查询出里面含有该字段的信息

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.nameBtn:// 根据产品查找

showText.setText("");//清空上一次的显示数据

// 获取输入框中的值

String name = editText_name.getText().toString();

// 匹配数据表中产品名称的字段

product = DataSupport.where("productName like ?", "%" + name + "%")

.find(Product.class);

result = gson.toJson(product);

showText.setText(result);

break;

case R.id.timeBtn: // 根据时间模糊查询

showText.setText("");//清空上一次的显示数据

// 获取输入框中的值

String time = editText_time.getText().toString();

// 匹配数据表中时间字段

product = DataSupport.where("createTime like ?", "%" + time + "%")

.find(Product.class);

result = gson.toJson(product);

showText.setText(result);

break;

}

效果图:





这就和sql语句一样了,可根据自己的需要来选择相应的查询方式

product = DataSupport.where("productName like ?", "_" + name + "%")

.find(Product.class);

product = DataSupport.where("productName like ?", name + "%")

.find(Product.class);

product = DataSupport.where("productName like ?", "___" + name + "%")

.find(Product.class);

好了,菜鸟就介绍到这里了,要感觉郭大虾提供这么好的框架,但框架好用,基础最重要!

源码地址:http://download.csdn.net/detail/sunjianhua360/9180771
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: