Android——GT Hibernate 教程(八) 查询数据

让你在开发中爱不释手的 GT 包。关注GSLS官网,查看更多源码 ヾ(✿゚▽゚)ノ工具包。

所有文章 小编尽量让读者可以 直接 读懂 完全 复制粘贴,其中复杂或较多 的源码 会有 源码 并 贴上 github 网址

GT 类 里面的源码完全开源较多的中文注释,让更多的人直接读懂。

点个关注点个赞呗(〃'▽'〃),关注博主最新发布库: https://github.com/1079374315/GSLS_Tool

美帝 框架,让创造变得如此简单!

当你依赖GT库后就可以进行以下操作了

上一篇:Android——GT Hibernate 教程(七) 删除数据

其实修改、删除、查询的操作参数意义都相差不多,只要你弄懂了修改或删除或查询,那么其余的两个都可以触类旁通了。

 

查询返回单条数据:

查询某个 ID 的整条数据:

LoginBean loginBean = hibernate.query(LoginBean.class, 3);

根据筛选条件查询:

/**
  * @参数一:查询那张表
  * @参数二:查询的条件
  * @参数三:查询条件值
  */
LoginBean loginBean = hibernate.query(LoginBean.class, new String[]{"userName"}, new String[]{"刘备"});

返回自己想要的数据:

/**
  * @参数一:查询那张表
  * @参数二:查询返回哪些属性
  * @参数三:查询的条件
  * @参数四:查询条件值
  */
LoginBean loginBean = hibernate.query(LoginBean.class,new String[]{"userName","loginRole"},new String[]{"loginID"},new String[]{"1"});

查询条件还可以自定义:

//或者直接这样
LoginBean loginBean = hibernate.query(LoginBean.class,"loginID > ? and userName = ?",new String[]{"0","张飞"});

具体效果如下:

1.整体代码:

        LoginBean loginBean = null;
        loginBean = hibernate.query(LoginBean.class, 3);
        log("查询1:" + loginBean);

        /**
         * @参数一:查询那张表
         * @参数二:查询的条件
         * @参数三:查询条件值
         */
        loginBean = hibernate.query(LoginBean.class, new String[]{"userName"}, new String[]{"刘备"});
        log("查询2:" + loginBean);

        /**
         * @参数一:查询那张表
         * @参数二:查询返回哪些属性
         * @参数三:查询的条件
         * @参数四:查询条件值
         */
        loginBean = hibernate.query(LoginBean.class,new String[]{"userName","loginRole"},new String[]{"loginID"},new String[]{"1"});
        log("查询3:" + loginBean);

        


2.效果打印:

I/GT_i: ------- 查询1:LoginBean{loginID=3, userName='张飞', passWord='123456', loginRole='三国英雄'}
I/GT_i: ------- 查询2:LoginBean{loginID=1, userName='刘备', passWord='123456', loginRole='三国英雄'}
I/GT_i: ------- 查询3:LoginBean{loginID=0, userName='刘备', passWord='null', loginRole='三国英雄'}

如果有需要查询这张表筛选条件下的第一条数据与最后一条数据怎么弄呢?

        LoginBean loginBean = null;

        String[] returnValues = {"loginID","userName","passWord","loginRole"};//返回的字段属性

        /**
         * @返回第一条数据
         * @参数一:查询那张表
         * @参数二:查询返回哪些属性
         * @参数三:查询的条件
         * @参数四:查询条件值
         */
        loginBean = hibernate.queryFirst(LoginBean.class,returnValues,new String[]{"loginRole"},new String[]{"三国英雄"});
        log("第一个:" + loginBean);


         //或者直接不指定返回属性且自定义查询条件
        loginBean = hibernate.queryFirst(LoginBean.class,"loginRole = ?",new String[]{"三国英雄"});




        /**
         * @返回最后一条数据
         * @参数一:查询那张表
         * @参数二:查询返回哪些属性
         * @参数三:查询的条件
         * @参数四:查询条件值
         */
        loginBean = hibernate.queryLast(LoginBean.class,returnValues,new String[]{"loginRole"},new String[]{"三国英雄"});
        log("最后一个:" + loginBean);

        //或者直接不指定返回属性
        loginBean = hibernate.queryLast(LoginBean.class,"loginRole = ?",new String[]{"三国英雄"});



打印效果图:

I/GT_i: ------- 第一个:LoginBean{loginID=1, userName='刘备', passWord='123456', loginRole='三国英雄'}
I/GT_i: ------- 最后一个:LoginBean{loginID=4, userName='曹操', passWord='123456', loginRole='三国英雄'}
I/GT_i: ------- ======================= 数据库 ===================
I/GT_i: ------- LoginBean{loginID=1, userName='刘备', passWord='123456', loginRole='三国英雄'}
I/GT_i: ------- LoginBean{loginID=2, userName='关羽', passWord='123456', loginRole='三国英雄'}
I/GT_i: ------- LoginBean{loginID=3, userName='张飞', passWord='123456', loginRole='三国英雄'}
I/GT_i: ------- LoginBean{loginID=4, userName='曹操', passWord='123456', loginRole='三国英雄'}

 

 

查询返回多条数据:

根据条件筛选查询,返回所有匹配的数据:

/**
  * @参数一:查询那张表
  * @参数二:查询的条件
  * @参数三:查询条件值
  */
List loginBeans = hibernate.queryAll(LoginBean.class,new String[]{"loginRole"},new String[]{"三国英雄"});


//条件还可以这么用
List loginBeans = hibernate.queryAll(LoginBean.class,"loginRole = ? and loginID > ?",new String[]{"三国英雄","1"});

根据条件查询,返回限制的属性:

/**
  * @参数一:查询那张表
  * @参数二:查询返回哪些属性
  * @参数三:查询的条件
  * @参数四:查询条件值
  */
List loginBeans = hibernate.queryAll(LoginBean.class,new String[]{"userName","loginRole"},new String[]{"loginRole"},new String[]{"三国英雄"});

如果要查询全部数据可以这么查询:

List loginBeans = hibernate.queryAll(LoginBean.class);

有个需求只需要返回4条数据,可以在查询方法前面加 limit(4) 即可 :

List loginBeans = this.hibernate.limit(4).queryAll(LoginBean.class);

如果还要求返回1~4条数据呢?还是一样的:

List loginBeans = this.hibernate.limit(1,4).queryAll(LoginBean.class);

如果还要求返回最后4条数据呢?还是一样的在查询方法前添加 flashback()即可:

List loginBeans = this.hibernate.limit(4).flashback("loginID").queryAll(LoginBean.class);

当然,如果还没有满足你查询的场景你还可以使用原生查询:

Cursor cursor = hibernate.query("查询SQL代码", new String[]{});

总结:查询方法非常多也非常灵活,增删查改的操作已经讲解完毕,下一篇将讲解Hibernate中一些其它内置实用的功能方法,

Dome教程:

Android——GT Hibernate 教程(八) 查询数据_第1张图片

教程Dome下载网址:https://github.com/1079374315/HibernateDome

有兴趣的朋友可以看看:Android——GT Hibernate 教程(九) 功能方法

 

 

 

你可能感兴趣的:(GT,Hibernate,数据库)