litePal的模糊查询个人见解

来源:互联网 发布:linux samba 登录 编辑:程序博客网 时间:2024/04/24 02:39

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

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/40153833

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

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

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

0 0
原创粉丝点击