精华内容
下载资源
问答
  • Android ormLite复杂条件查询

    千次阅读 2017-02-17 18:58:30
    OrmLite要继承一个OrmLiteSqliteOpenHelper,通过OrmLiteSqliteOpenHelper实例的getDao方法可以获取一个Dao类,下边代码中mDao是Dao的实例,用来进行各种数据库操作。Dao类其中有个queryBuilder()方法可以得到...

    OrmLite要继承一个OrmLiteSqliteOpenHelper,通过OrmLiteSqliteOpenHelper实例的getDao方法可以获取一个Dao类,下边代码中mDao是Dao的实例,用来进行各种数据库操作。Dao类其中有个queryBuilder()方法可以得到builder来构造复杂查询语句。

    假设有Person实体,对应数据库t_person表。通过该表来讲下述各种查询方法。

    Id LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing
    4 Gates Bill Xuanwumen 10 Beijing

    WEHRE子句
    在SQL语句中,经常会用到where语句,where 进行条件筛选。
    dao.queryBuilder.()where()方法返回一个where对象,where中提供了很多方法来进行条件筛选,下边逐个讲where中的方法。

    方法 :eq(columnName,value) 等于(=)equals
    使用示范:mDao.queryBuilder().where().eq(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id = 2
    结果:
    2 Bush George Fifth Avenue New York

    方法 :lt(columnName,value) 小于(<) less than
    使用示范:mDao.queryBuilder().where().lt(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id < 2
    结果:
    1 Adams John Oxford Street London

    方法 :gt(columnName,value) 大于(>) greater than
    使用示范:mDao.queryBuilder().where().gt(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id > 2
    结果:
    3 Carter Thomas Changan Street Beijin

    方法 :ge(columnName,value) 大于等于(>=)greater-than or equals-to
    使用示范:mDao.queryBuilder().where().ge(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id >= 2
    结果:
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

    方法 :le(columnName,value) 小于等于(<=)less than or equals-to
    使用示范:mDao.queryBuilder().where().le(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id <= 2
    结果:
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York

    方法 :ne(columnName,value) 不等于(<>)not-equal-to
    使用示范:mDao.queryBuilder().where().ne(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE id <> 2
    结果:
    1 Adams John Oxford Street London
    3 Carter Thomas Changan Street Beijing

    方法 :in(columnName,object…) 在指定列中匹配object数组所对应的值,返回匹配到的结果行集合
    in还有几个重载方法,需要的话可以去看文档或源码
    使用示范:mDao.queryBuilder().where().in(“id”, 1,2).query();
    对应SQL:SELECT * FROM t_person WHERE id IN (1,2 )
    结果:
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York

    方法 :notIn(columnName,object…) 在指定列中匹配object数组所对应的值,返回没有匹配到的结果行集合
    notIn还有几个重载方法,需要的话可以去看文档或源码
    使用示范:mDao.queryBuilder().where().notIn(“id”,1,2).query();
    对应SQL:SELECT * FROM t_person WHERE id NOT IN (1 ,2 )
    结果:
    3 Carter Thomas Changan Street Beijin

    方法 :like(columnName,pattern) 使用%通配符来匹配,指定行数据,返回匹配到的结果
    使用示范:mDao.queryBuilder().where().like(“LastName”, “A%”).query(); 匹配A开头的LastName
    mDao.queryBuilder().where().like(“LastName”, “%s”).query(); 匹配s结尾的LastName
    mDao.queryBuilder().where().like(“LastName”, “%art%”).query(); 匹配中间为art的LastName
    对应SQL:SELECT * FROM t_person WHERE LastName LIKE ‘A%’
    结果:
    1 Adams John Oxford Street London

    方法 :between(columnName,low,high) 获取指定范围内的结果
    使用示范:mDao.queryBuilder().where().between(“id”, 1, 2).query(); 获取id是1到2之间的结果
    对应SQL:SELECT * FROM t_person WHERE id BETWEEN 1 AND 2
    结果:
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York

    方法and(),or()用来组合上述where子语句。进行与,或操作。

    方法 :and() where子句与操作
    使用示范:mDao.queryBuilder().where().lt(“id”, 3).and().gt(“id”, 1).query();
    对应SQL:SELECT * FROM t_person WHERE (id < 3 AND id > 1 )
    结果:
    2 Bush George Fifth Avenue New York

    方法 :or() where子句或操作
    使用示范:mDao.queryBuilder().where().eq(“id”, 1).or().eq(“id”, 2).query();
    对应SQL:SELECT * FROM t_person WHERE (id = 1 OR id = 2 )
    结果:
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York

    ORDER BY
    根据指定列名排序,降序,升序
    使用示范:mDao.queryBuilder().orderBy(“id”, false).query(); //参数false表示降序,true表示升序。
    对应SQL:SELECT * FROM t_person ORDER BY id DESC(降序)
    结果:
    Id LastName FirstName Address City
    4 Gates John Oxford Street Beijing
    3 Carter Thomas Changan Street Beijing
    2 Bush George Fifth Avenue New York
    1 Adams John Oxford Street London

    DISTINCT
    过滤指定列不重复数据行,重复的只返回一次。
    使用示范:mDao.queryBuilder().selectColumns(“City”).distinct().query();
    对应SQL:SELECT DISTINCT City FROM t_person
    结果:
    City
    London
    New York
    Beijing
    其中Beijing过滤掉了一个。

    GROUP BY
    按照指定列分组
    使用示范:mDao.queryBuilder().groupBy(“city”).query();
    对应SQL:SELECT * FROM t_person GROUP BY city
    3 Gates Thomas Changan Street Beijing
    2 Bush George Fifth Avenue New York
    1 Adams John Oxford Street London

    offset Limit
    offset跳过指定的行数
    limit限制获取指定行数
    使用示范:mDao.queryBuilder().offset(2).limit(2).query(); 可以用来分页
    对应SQL:SELECT * FROM t_person LIMIT 2 OFFSET 2
    结果:
    3 Carter Thomas Changan Street Beijing
    4 Gates Bill Xuanwumen 10 Beijing

    Having
    等同于sql中的Having,针对分组数据,进行聚合函数(SUM, COUNT, MAX, AVG)运算。
    使用示范:mPersonList = mDao.queryBuilder().groupBy(“City”).having(“SUM(id)>4”).query()
    对应SQL:SELECT * FROM t_person GROUP BY City HAVING SUM(id)>4
    结果
    4 Gates Bill Xuanwumen 10 Beijing

    countOf
    返回查询结果的总数
    使用示范:mDao.queryBuilder().countOf()
    对应SQL:SELECT COUNT(*) FROM t_person
    结果 4

    iterator
    返回一个结果集的迭代器。
    使用示范:Iterator iterator = mDao.queryBuilder().iterator();
    queryForFirst
    返回所有行的第一行。
    使用示范:mDao.queryBuilder().queryForFirst();

    展开全文
  • 最后留下一个问题,对于查询条件比较高的查询ORMLite如何查询呢?这里ORMLite提供了QureyBuilder类解决复杂查询的问题。还是先上一些代码看看:QueryBuild erqueryBuilder = userDao.queryBuilder(); queryBuilder ....

    上一篇博客讲述了ORMLite框架的基本用法。最后留下一个问题,对于查询条件比较高的查询ORMLite如何查询呢?

    这里ORMLite提供了QureyBuilder类解决复杂查询的问题。

    还是先上一些代码看看:

    QueryBuild  erqueryBuilder = userDao.queryBuilder();           
    
    queryBuilder
    
        .distinct()// 排重                    
    
        .groupBy("columnName")  //分组
    
        .limit(1000L).offset(10L) //分页                                    
    
        .orderBy("name", true)  //排序                   
    
        .where().like("name", "%张三%");          
    
    List<User> users = queryBuilder.query();
    

    这里我们使用Dao类的一个方法queryBuilder()获取一个QueryBuiler对象,然后给这个连续调用这个对象的方法,组合成一个复杂的查询条件,再调用query()方法就可以返回一个集合,这个集合就是查询结果了,是不是特别简单~

    那么查询的重点就是QueryBuilder的一系列查询方法了,我们来看看常用方法:

    distinct() //去除重复的数据行
    
    orderBy(String columnName, boolean ascending) //根据指定列名排序,columnName为列名,第二个参数false表示降序,true表示
    升序
    
    groupBy(String columnName) //根据指定列名分组
    
    offset(Long startRow) //跳过指定行数
    
    limit(Long maxRows) //限制获取指定行数
    
    countOf() //返回按照已组合的查询条件查询的数据总数
    

    另外还有一些where子句,这些where子句和where()方法一起使用,准确的说是where()语句会返回一个Where对象,改Where对象提供了这些where子句,我们来看看常用where子句:

    eq(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id = 2,columnName为列名,value为匹配键
    
    lt(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id < 2
    
    gt(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id > 2
    
    le(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id <=2
    
    ge(String columnName, Object value) //此方法相当与SQL语句中的 WHERE id >=2
    
    ne(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id <> 2
    
    in(String columnName, Object... objects) // 此方法相当于SQL语句中的 WHERE id IN(1,2)
    
    notIn(String columnName, Object... objects) //此方法相当于SQL语句中的 WHERE id NOT IN(1,2)
    
    like(String columnName, Object value) //此方法相当于SQL语句中的 WHERE id LIKE “2%”
    
    between(String columnName, Object low, Object high) //此方法相当于SQL语句中的 WHERE id BETWEEN 1 AND 2
    
    and()、or() //用来组合以上这些方法
    

    有这些方法,想必一般的复杂查询都可以解决了~


    MQL于2017年8月18日完成本文。

    展开全文
  • Android Ormlite数据库使用,包含基本的增删改差操作,比起SQLite更加简单,没有频繁的数据库,查询语言,不了解的小伙伴可以先了解一下Ormlite数据库的简介http://www.jianshu.com/p/05782b598cf0
  • 这段代码写的是查询数据库中的数据,并且是按照id排序(倒序),下列中是new一个Date对象(时间对象),然后根据时间的跨度进行查询的,下面new Date中有个坑 1.date对象,如果你不设置日期,那么就是当前的日子,所以你要用来...
    /**
    这段代码写的是查询数据库中的数据,并且是按照id排序(倒序),下列中是new一个Date对象(时间对象),然后根据时间的跨度进行查询的,下面new Date中有个坑
    1.date对象,如果你不设置日期,那么就是当前的日子,所以你要用来查询跨度需要去设置 月份内的日子为 1  或者最后一天
    2.date月份是从0开始的,我查的时候老是出错,然后慢慢看date发现,这个月份单词是什么,然后一查发现.从0开始的,好吧.程序员是0开始,但是我想的是,应该一月份是1才是正常人吧...
    
    3.如果你查询当月,嗯,这个好想只能这么查,你用eq参数去查的时候,这个好像要完全相等,你肯定无法做到月份时分秒什么的完全相等吧.我想的话.
    */
    public List<Personal> limitCategoryQuery(int startIndex) {
            List<Personal> query = null;
            try {
                Dao<Personal, Integer> personalDataDao = openHelper.getPersonalDataDao();
                QueryBuilder<Personal, Integer> queryBuilder = personalDataDao.queryBuilder();
                PreparedQuery<Personal> prepare = queryBuilder.prepare();
                Date date = new Date();
                date.setMonth(0);
                date.setYear(113);
                Date date1 = new Date();
                date.setYear(113);
                date1.setMonth(1);
                queryBuilder.orderBy("_id", false).limit(10).offset(startIndex).where().ge("rizi", date).and().lt("rizi", date1);
    
                query = queryBuilder.query();
    
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            return query;
        }
     // 查询本地数据库的数据,分段查询
        private List<Personal> queryDate() {
            List<Personal> personals = RegisiterOpenHelper.getHelper(this).limitCategoryQuery(0);
    
            List<Personal> querys = null;
            try {
                if (noMoreDate) {
                    Toast.makeText(QueryActivity.this, "没有更多数据", Toast.LENGTH_LONG).show();
                    return querys;
                }
                Dao<Personal, Integer> personalDataDao = RegisiterOpenHelper.getHelper(this).getPersonalDataDao();
                QueryBuilder<Personal, Integer> queryBuilder = personalDataDao.queryBuilder();
                // offset 就是说你从哪个数字开始, false表示倒序,true表示正序, limit是表示一次查多少个
                // 毕竟手机内存有限,一次查几条,再显示才是王道.
                queryBuilder.orderBy("_id", false).offset(startIndex).limit(LIMIT);
                querys = queryBuilder.query();
    
                startIndex  += querys.size();
                if (querys.size() < LIMIT) {
                    noMoreDate = true;
                }
            } catch (SQLException e) {
                e.printStackTrace();
                return null;
            }
            return querys;
        }
    /**
     *数据库的存储表单,这个配置,可以直接生产响应的字段,其实还可以设置长度的,很多参数,可以看文档.
     */
    @DatabaseTable(tableName = "regisger_table")
    public class Personal {
        public Personal() {
            /*this.registerTime = new Date().getTime() +"";*/
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String format = simpleDateFormat.format(new Date());
            this.registerTime = format;
            this.rizi = new Date();
        }
    
        @DatabaseField(columnName = "rizi", dataType = DataType.DATE)
        private Date rizi;
    
        @DatabaseField(generatedId = true)
        private int _id;
    
        /**
         * 姓名
         */
        @DatabaseField(columnName = "name", canBeNull = true)
        private String peopleName;
    
        /**
         * 性别
         */
        @DatabaseField(columnName = "sex", canBeNull = true)
        private String peopleSex;
    
        /**
         * 民族
         */
        @DatabaseField(columnName = "nation", canBeNull = true)
        private String peopleNation;
    
        /**
         * 出生日期
         */
        @DatabaseField(columnName = "birthday", canBeNull = true)
        private String peopleBirthday;
    
        /**
         * 住址
         */
        @DatabaseField(columnName = "address", canBeNull = true)
        private String peopleAddress;
    
        /**
         * 身份证号
         */
        @DatabaseField(columnName = "idcardNum", canBeNull = true)
        private String peopleIDCode;
    
        /**
         * 签发机关
         */
        @DatabaseField(columnName = "department", canBeNull = true)
        private String department;
    
        /**
         * 有效期限:开始
         */
        @DatabaseField(columnName = "startDates", canBeNull = true)
        private String startDate;
    
        /**
         * 有效期限:结束
         */
        @DatabaseField(columnName = "endDate", canBeNull = true)
        private String endDate;
    
        /**
         *登记时间
         */
        @DatabaseField(columnName = "registerTime", canBeNull = true)
        private String registerTime;
        /**
         * 身份证头像
         */
        @DatabaseField(dataType = DataType.BYTE_ARRAY)
        private byte[] photo;
    
        /**
         * 没有解析成图片的数据大小一般为1024字节
         */
    
        private byte[] headImage;
    
        /**
         * 三代证指纹模板数据,正常位1024,如果为null,说明为二代证,没有指纹模板数据
         */
        private byte[] model;
    
        /**
         * 登记的事件 类型原因什么的
         */
        @DatabaseField(columnName = "workingReason", canBeNull = false)
        private String workingReason;
    
        public String getRegisterTime() {
            return registerTime;
        }
    
        public String getWorkingReason() {
            return workingReason;
        }
    
        public void setWorkingReason(String workingReason) {
            this.workingReason = workingReason;
        }
    
        public void setRegisterTime(String registerTime) {
            this.registerTime = registerTime;
        }
    
        public int get_id() {
            return _id;
        }
    
        public void set_id(int _id) {
            this._id = _id;
        }
    
        public String getPeopleName() {
            return peopleName;
        }
    
        public void setPeopleName(String peopleName) {
            this.peopleName = peopleName;
        }
    
        public String getPeopleSex() {
            return peopleSex;
        }
    
        public void setPeopleSex(String peopleSex) {
            this.peopleSex = peopleSex;
        }
    
        public String getPeopleNation() {
            return peopleNation;
        }
    
        public void setPeopleNation(String peopleNation) {
            this.peopleNation = peopleNation;
        }
    
        public String getPeopleBirthday() {
            return peopleBirthday;
        }
    
        public void setPeopleBirthday(String peopleBirthday) {
            this.peopleBirthday = peopleBirthday;
        }
    
        public String getPeopleAddress() {
            return peopleAddress;
        }
    
        public void setPeopleAddress(String peopleAddress) {
            this.peopleAddress = peopleAddress;
        }
    
        public String getPeopleIDCode() {
            return peopleIDCode;
        }
    
        public void setPeopleIDCode(String peopleIDCode) {
            this.peopleIDCode = peopleIDCode;
        }
    
        public String getDepartment() {
            return department;
        }
    
        public void setDepartment(String department) {
            this.department = department;
        }
    
        public String getStartDate() {
            return startDate;
        }
    
        public void setStartDate(String startDate) {
            this.startDate = startDate;
        }
    
        public String getEndDate() {
            return endDate;
        }
    
        public void setEndDate(String endDate) {
            this.endDate = endDate;
        }
    
        public byte[] getPhoto() {
            return photo;
        }
    
        public void setPhoto(byte[] photo) {
            this.photo = photo;
        }
    
        public byte[] getHeadImage() {
            return headImage;
        }
    
        public void setHeadImage(byte[] headImage) {
            this.headImage = headImage;
        }
    
        public byte[] getModel() {
            return model;
        }
    
        public void setModel(byte[] model) {
            this.model = model;
        }
    
        public Date getRizi() {
            return rizi;
        }
    
        public void setRizi(Date rizi) {
            this.rizi = rizi;
        }
    
        @Override
        public String toString() {
            return "Personal{" +
                    "_id=" + _id +
                    ", peopleName='" + peopleName + '\'' +
                    ", peopleSex='" + peopleSex + '\'' +
                    ", peopleNation='" + peopleNation + '\'' +
                    ", peopleBirthday='" + peopleBirthday + '\'' +
                    ", peopleAddress='" + peopleAddress + '\'' +
                    ", peopleIDCode='" + peopleIDCode + '\'' +
                    ", department='" + department + '\'' +
                    ", startDate='" + startDate + '\'' +
                    ", endDate='" + endDate + '\'' +
                    ", registerTime='" + registerTime + '\'' +
                    ", photo=" + Arrays.toString(photo) +
                    ", headImage=" + Arrays.toString(headImage) +
                    ", model=" + Arrays.toString(model) +
                    ", workingReason='" + workingReason + '\'' +
                    '}';
        }
    }
    /**
    这里创建只用了OpenHelper去继承框架类的方式,还有另外直接继承响应的Activity的方式实现,具体可以看文档.
    */
    public class RegisiterOpenHelper extends OrmLiteSqliteOpenHelper {
    
        private static RegisiterOpenHelper openHelper;
    
    
        private static final String DATABASE_NAME = "registerinfo.db";
    
        private static final int DATABASE_VERSION = 1;
        private Dao<Personal, Integer> simpleDao = null;
        private RuntimeExceptionDao<Personal, Integer> simpleRuntimeDao = null;
    
        public RegisiterOpenHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
    
        @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {
            try {
                Log.i(RegisiterOpenHelper.class.getName(), "onCreate");
                TableUtils.createTable(connectionSource, Personal.class);
    
    
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int i, int i1) {
    
        }
    
    
        /**
         * Returns the Database Access Object (DAO) for our SimpleData class. It will create it or just give the cached
         * value.
         */
        public Dao<Personal, Integer> getPersonalDataDao() throws SQLException {
            if (simpleDao == null) {
                simpleDao = getDao(Personal.class);
            }
            return simpleDao;
        }
    
        /**
         * 单例
         * @param cotext
         * @return
         */
        public static RegisiterOpenHelper getHelper(Context cotext) {
            if (openHelper == null) {
                synchronized (RegisiterOpenHelper.class) {
                    if (openHelper == null) {
                        openHelper = OpenHelperManager.getHelper(cotext, RegisiterOpenHelper.class);
                    }
                }
            }
            return openHelper;
        }
    
    
    
        /**
         * Close the database connections and clear any cached DAOs.
         */
        @Override
        public void close() {
            super.close();
            simpleDao = null;
        }
    }
    

    总结:存储的时候,尽量选择相对应的格式,图方便都用String的话,无法进行大小的对比这种比较负责的查询操作.谨记!
    下面的站点可能需要科学上网姿势.

    github资源站点.android相关的

    关于字段中的DateType相应的文档说明
    ORMLTE的文档

    展开全文
  • Android ORMLite 多表联查

    千次阅读 2016-12-15 13:58:30
    1、用原声sql查询: try { GenericRawResults results = featureDaoOpe.queryRaw(“select id,faceID,type,feature from tb_uniubi_ss2_feature ” + “where faceID in (select id

    1、用原生sql查询:
    try {
    GenericRawResults results = featureDaoOpe.queryRaw(“select id,faceID,type,feature from tb_feature ” +
    “where faceID in (select id from tb_face ” +
    “where employeeID= (select employeeID from tb_employee where id=” + faceId + “))”,
    new RawRowMapper() {
    @Override
    public Feature mapRow(String[] columnNames, String[] resultColumns) throws SQLException {
    Feature feature = new Feature();
    feature.setId(Integer.valueOf(resultColumns[0]));
    feature.setFaceID(Integer.valueOf(resultColumns[1]));
    feature.setType(Integer.valueOf(resultColumns[2]));
    feature.setFeature(resultColumns[3]);
    return feature;
    }
    });
    Iterator iterator = results.iterator();
    List featureList = new ArrayList();
    while (iterator.hasNext()) {
    Feature feature = (Feature) iterator.next();
    featureList.add(feature);
    }
    return featureList;
    } catch (SQLException e) {
    e.printStackTrace();
    }
    注意:select后边最好加上查询的字段,如果用* 的话可能顺序会乱。

    展开全文
  • OrmLite要继承一个OrmLiteSqliteOpenHelper,通过OrmLiteSqliteOpenHelper实例的getDao方法可以获取一个Dao类,下边代码中mDao是Dao的实例,用来进行各种数据库操作。Dao类其中有个queryBuilder()方法可以得到...
  • 以上一篇为例子,进行主外键的查询 定义Users.java 和 Role.java Users -- Role 关系为:1对1 即父表关系 Role -- Users 关系为:1对多 即子表关系 下面看2个实体类,贴主要代码 -- Role.java public ...
  • Android 使用ORMLite 操作数据库 参考:http://blog.csdn.net/cjjky/article/details/7096987   ormlite 方法查询:http://ormlite.com/javadoc/ormlite-core/com/j256/ormlite/dao/Dao.html   第一步:...
  • 一个列表有四种查询条件,而且不仅需要在线查询而且还需要离线查询,在线直接请求接口帮我们做了,离线得我们自己实现了,可以实现的方法很多,我这里使用ormlite实现,ormlite提供了很多查询的方法,如果想了解更多...
  • 我想使用OrmLite进行一个数据查询 select * from table where userid="" and (type=1 or type=2) 原生SQL大概是这样的结构,![图片说明](https://img-ask.csdn.net/upload/201611/26/1480152518_527671.png) 我使用...
  • ormliteandroid中 排序 条件查询 all=dao.queryBuilder().orderBy("Id",true).where().eq("Type",key).and().eq("owner",Pub.user.getAccount()).and().eq("UserType",Pub.user.getUser...
  • 在数据库中经常会使用到复杂的条件查询,来完成业务,下面学习下如何使用OrmLite进行复杂条件查询。在默认情况下,Android只打印info级别的日志信息。在ormlite中提供了AndroidLog类来设置adb log的级别。为了更方便...
  • AndroidORMLite使用(1)

    2015-03-25 16:53:45
    ORMLite介绍: 一个轻量级的Java对象关系映射持久层...提供灵活的QueryBuilder来构建复杂的数据查询。强大的抽象DAO类,只需5行代码便能够自动生成SQL来创建和删除数据库表格。 ORMLite使用: (1)在android
  • ORMLite核心 该软件包提供了JDBC和Android软件包的核心功能。... 灵活的,可轻松构造简单和复杂的查询。 支持MySQL,Postgres,Microsoft SQL Server,H2,Derby,HSQLDB和Sqlite,并且可以相对容易地扩展到其他
  • ORMLite是一个轻量级的Java对象关系映射持久层框架。支持包括 MySQL、Postgres、Microsoft SQL Server、H2...ORMLite很好的支持Android系统的SQLite数据库,只需简单的几行代码,就可以快速的开发操作数据库的应用。

空空如也

空空如也

1 2 3 4 5 6
收藏数 116
精华内容 46
关键字:

androidormlite查询