首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在android中使用ormlite和sqlite进行不区分大小写的顺序

在 Android 中使用 Ormlite 和 SQLite 进行不区分大小写的顺序查询,需要使用到 OrderBy 关键字,该关键字用于指定查询结果的排序方式,支持升序 (ASC) 和降序 (DESC) 两种方式。

假设我们有一个 Person 对象,它有一个 name 字段,我们可以使用 Ormlite 来进行不区分大小写的顺序查询,代码如下所示:

代码语言:txt
复制
Dao<Person, Integer> personDao = getDao(Person.class);

// 不区分大小写的顺序查询
String orderBy = "name";
Cursor cursor = personDao.queryBuilder().where(where).orderBy(orderBy, true).queryCursor();

在上述代码中,我们使用 queryBuilder() 方法构建查询语句,然后使用 orderBy() 方法指定排序的字段和升序还是降序,其中第二个参数为布尔值,表示是否使用不区分大小写的排序方式。

需要注意的是,在 Android 中使用 Ormlite 进行查询时,需要使用 Cursor 类型的变量来获取查询结果,而不能直接使用 Dao 对象。这是因为 Dao 对象在查询结束后,会自动释放资源,而 Cursor 对象则需要手动释放资源,否则容易导致内存泄漏。

至于 SQLite,它本身不支持不区分大小写的顺序查询,因此我们需要在 Ormlite 中进行转换,将字段名转换为小写,代码如下所示:

代码语言:txt
复制
Dao<Person, Integer> personDao = getDao(Person.class);

// 将字段名转换为小写
String orderBy = "name";
orderBy = orderBy.toLowerCase();

// 不区分大小写的顺序查询
String where = "name = :name";
Cursor cursor = personDao.queryBuilder().where(where).orderBy(orderBy, true).queryCursor();

在上述代码中,我们将 orderBy 字段的值转换为小写,然后使用 queryBuilder() 方法构建查询语句,使用 orderBy() 方法指定排序的字段和升序还是降序,其中第二个参数为布尔值,表示是否使用不区分大小写的排序方式。

需要注意的是,使用不区分大小写的排序方式,可能会对性能造成一定的影响,因为 SQLite 在进行排序时,需要将所有字段的值都转换为小写或者大写,然后再进行比较和排序,因此如果需要进行不区分大小写的排序,最好使用其他数据源,例如 MongoDB 等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android Sqlite并发问题

背景 我们项目中使用ormlite加密框架sqlcipher来进行数据库操作 多进程操作同一个数据库文件出现了问题 net.sqlcipher.database.SQLiteException...(Binder.java:565) 如上异常堆栈错误信息error code 5: database is locked,经过查找发现code为5代表sqliteSQLITE_BUSY异常,详见...通常是多个进程不同数据库连接对同一个数据库进行并发操作,例如进程A进行耗时数据库事务,而于此同时进程B也要进行一个数据库事务,这时候进程B就会直接返回SQLITE_BUSY错误码,因为sqlite...比如,有一个删除表操作发生在其他线程在对这个表进行读操作过程,那么就会报SQLITE_LOCKED异常,也就是说一个线程删除表操作和另一个线程对相同表读取操作存在冲突,前提是这两个操作都是使用同一个数据库连接...,所以限制上限就会由机器来决定,也就是说,仍然存在这个问题,如果存入数据库记录太大,还是有可能发生此异常,我们建议让sqlite数据库中去存储blog这种大数据记录,应该大数据记录存成文件,然后把文件路径存到数据库中会更加合适

1.4K40

android orm持久层框架

android数据库开发   Android内置了sqlite,但是常用开发语言java是面向对象,而数据库是关系型,二者之间转化每次都很麻烦(主要是我对sql语言不熟悉)。...一个是依赖包:Apache Commons - Lang (2.6)   另外一个就是主包:androrm.jar   不管怎么下载都不能使用...  ...然后有考虑了一下db4o   官网:http://www.db4o.com/ 官网上介绍说是已经支持Android了,但是我一是觉得包有点大,而是觉得速度有点慢   最后看到就是ormlite...;    import android.database.sqlite.SQLiteDatabase;    import android.util.Log;    import cn.sdx.model.Hello...helloDao == null) {       helloDao = getDao(Hello.class);      }    return helloDao;    }    }    布局文件添加一个

81050

GreenDao:你一定值得拥有的轻量数据库框架

它实际是创建了一个可在编程语言里使用“虚拟对象数据库”。 众所周知,我们Android开发中使用java是一种面向对象编程语言。...优点: 文档较全面,社区活跃,有好维护,使用简单,易上手 缺点: 基于反射,效率较低 2 GreenDao GreenDAO是一个可以帮助Android开发者快速将Java对象映射到SQLite数据库表单...ORM解决方案,通过使用一个简单面向对象API,开发者可以对Java对象进行存储、更新、删除查询。...Small library size, focus on the essentials:较小文件体积,只集中必要部分上 优点: 效率很高,插入更新速度是sqlite2倍,加载实体速度是...Protocol Buffers协议:以一种高效可扩展对结构化数据进行编码方式。google内部RPC协议和文件格式大部分都是使用它。 3 OrmLite GreenDAO性能评测 ?

1.1K10

042android初级篇之android混淆代码ProGuard

混淆代码能有效防止被反编译,防止自己劳动成果被别人窃取; 混淆配置文件及开关设置 配置文件位置以及开关设置位置,android studio eclipse稍微有些差异,这里以android...sudio为例: android工程混淆配置文件:proguard-rules.pro (默认文件名) 混淆开关: build.gradle buildTypes { release {...' } } 如上buildTypes为release版本时,设置minifyEnabled为true,即使用proguard-rules.pro混淆脚本进行混淆。...,optimization可以对代码进行各种优化,每次优化后还可以继续优化,故称之迭代优化; -optimizationpasses 5 #混淆时产生混合大小写类名 -dontusemixedcaseclassnames...3. seeds.txt 列出了没有被混淆成员。 4. usage.txt 列出了源代码中被删除apk不存在代码。

1K30

Android 数据库框架ormlite

Android 数据库框架ormlite 使用精要 前言 本篇博客记录一下笔者实际开发中使用一个数据库框架,这个可以让我们快速实现数据库操作,避免频繁手写sql,提高我们开发效率,减少出错机率...首先可以去它官网看看www.ormlite.com,它英文全称是Object Relational Mapping,意思是对象关系映射;如果接触过Java EE开发,一定知道Java Web开发就有一个类似的数据库映射框架...简单来说,就是我们定义一个实体类,利用这个框架,它可以帮我们吧这个实体映射到我们数据库AndroidSQLite,数据字段就是我们定义实体成员变量。 为什么要用ormlite?...导入jar包到项目libs文件夹下 到http://ormlite.com/releases/下载相应版本jar,下载最新,目前是最新版本4.49。我们下载稳定4.48即可。 ?...; import android.database.sqlite.SQLiteDatabase

85480

基于开源项目搭建属于自己技术堆栈

5.2 ormlite ormlite 是 Java 平台一个 ORM 框架,支持 JDBC 连接、Spring Android 平台。 Android使用时,它包含两部分。...ormlite-android:基于 ormlite-core 封装针对 Android 平台适配器模块,Android 开发主要跟这个模块打交道。...Volley 设计了一个灵活网络栈适配器, Android2.2 及之前版本,Volley 底层使用 Apache HttpClient, Android2.3 及以上版本,它使用 HttpURLConnection...图片缓存显示能力 图片缓存函数库有很多非常优秀,开发人员可以根据需求进行选择。传统图片缓存方案设置有两级缓存,分别是内存缓存磁盘缓存。... adapter 中正常处理 ImageView 回收下载取消 使用尽量小内存实现复杂图像变换 Picasso ,我们使用一行代码即可实现图片下载并渲染到 ImageView

1.9K70

详解Android代码混淆实战

为什么要混淆: 优化java字节码 减小apk文件大小,在混淆过程中会删除未使用成员 代码安全,使类、函数、变量名随机变成无意义代号形如:a,b,c…之类。...防止app被反编译之后能够很容易看懂代码 怎样使用混淆 app下面的build.gradle添加使用混淆 buildTypes { release { //开启混淆,删除无用代码...~7之间,默认为5,一般不做修改 -optimizationpasses 5 # 混合时不使用大小写混合,混合后类名为小写 -dontusemixedcaseclassnames # 指定不去忽略非公共库类...view方法, # 这样以来我们layoutonClick就不会被影响 -keepclassmembers class * extends android.app.Activity{ public...(如okhttp,eventbus,rxjava等),需要根据具体工具介绍进行操作 保留libcompile引用第三方jar包不被混淆方法: java -keep class 包名.** { *

1.5K51

Android ORM 框架之 greenDAO

前言 我相信,平时开发过程,大家一定会或多或少地接触到 SQLite。然而在使用它时,我们往往需要做许多额外工作,像编写 SQL 语句与解析查询结果等。...简单讲,greenDAO 是一个将对象映射到 SQLite 数据库轻量且快速 ORM 解决方案。...与 ORMLite使用注解方式 ORM 框架不同,greenDAO 使用「Code generation」方式,这也是其性能能大幅提升原因。...这是其核心概念:为了我们 Android 工程中使用 greenDAO ,我们需要另建一个纯 Java Project,用于自动生成后继 Android 工程需要使用 Bean、DAO、DaoMaster...").notNull(); // 与 Java 中使用驼峰命名法不同,默认数据库命名是使用大写下划线来分割单词

1.2K60

笔记——安卓存储知识(十)

用于存储Andoid设备操作系统应用程序存储介质,Android设备Android系统应用程序(APK文件)都是存在内部存储区。例如手机/system/目录、/data/目录等。...内部存储外部存储并不是按是否存储于SD卡来区分,内部存储是data文件下,外部存储是storage或者mnt文件夹下,这就是区别。...SQLite支持最大2TB存储空间,AndroidSQLite是受手机系统存储空间(ROM)也就是机身内存大小限制,不包括外置SD卡空间。...所有app程序共用一个SQLite数据库,但是数据库表不同多个app共用,这个需要注意理清。...优秀数据库框架:GreenDao、OrmLite、Litepal等 3、android应用程序(进程)内存(RAM)一般限制16M,也有的是24M(早期Android系统G1,就是只有16M),根据开发人员定义也可以扩展

69230

笔记(十)——安卓存储知识

用于存储Andoid设备操作系统应用程序存储介质,Android设备Android系统应用程序(APK文件)都是存在内部存储区。例如手机/system/目录、/data/目录等。...内部存储外部存储并不是按是否存储于SD卡来区分,内部存储是data文件下且不可被访问操作,外部存储是storage或者mnt文件夹下是可以被访问操作,****这些就是区别。...SQLite支持最大2TB存储空间,AndroidSQLite是受手机系统存储空间(ROM)也就是机身内存大小限制,不包括外置SD卡空间。...所有app程序共用一个SQLite数据库,但是数据库表不同,多个app共用,这个需要注意理清。...java,用java.lang.ref.WeakReference类来表示。移动端内存紧缺推荐使用弱引用。

1.3K31

15 个 Android 通用流行框架大全

Picasso 一个强大图片下载与缓存库 Fresco 一个用于管理图像和他们使用内存库 Glide 一个图片加载和缓存库 3 图片处理 名称 描述 Picasso-transformations...库 6 数据库 名称 描述 OrmLite JDBCAndroid轻量级ORM java包 Sugar 用超级简单方法处理Android数据库 GreenDAO 一种轻快地将对象映射到SQLite...数据库ORM解决方案 ActiveAndroid 以活动记录方式为Android SQLite提供持久化 SQLBrite SQLiteOpenHelper ContentResolver轻量级包装...Realm 移动数据库:一个SQLiteORM替换品 7 依赖注入 名称 描述 ButterKnife 将Android视图回调方法绑定到字段方法上 Dagger2 一个Androidjava...Android日志工具 Hugo 调试版本上注解触发方法进行日志记录 Timber 一个小,可扩展日志工具 13 测试框架 名称 描述 Mockito Java编写Mocking单元测试框架

1.4K60
领券