问题标签 [ormlite]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android、Ormlite、数据库位置
我正在使用 Ormlite 来保存我的 Android 应用程序(在摩托罗拉 Xoom 上运行)中的一些数据。默认情况下,sql数据库保存到/data/data/[包名]/databases/[dbname].db。麻烦的是,Xoom 没有root,因此用户无权访问保存数据库的目录(无法复制/备份/编辑数据库的内容)。
我在其中一个类中添加了一些额外的代码,以将 db 从 /data 复制到 sd 卡,这工作正常,但实际上我认为应该可以设置存储 db 的路径。我错过了什么,或者这对 Ormlite 来说是不可能的吗?
在此先感谢, C
android - 什么是在 SQLite 和 Android 中使用 ORMLite 的好教程
我正在寻找一个关于如何将 ORMLite 与 SQLite 和 Android 一起使用的很好的介绍性教程。快速的谷歌搜索没有产生任何有用的信息。
android - OrmLite 更新缓慢
我有一个简单的结构,我注意到更新数据库中的记录需要很长时间才能执行。
这就是我的数据类的定义方式:
这是我的应用程序中某处的更新语句:
SQL 如下所示:
有没有人看到问题出在哪里?.update() 需要几秒钟,它应该立即执行。
任何想法都会很棒。
java - ORMLite - 强制读取对象具有相同的身份
我正在使用 ORMLite 读取对象的层次结构。它的形状像一棵树,父母有一个@ForeignCollection
孩子0+
,每个孩子都用@DatabaseField(foreign=true)
. 我正在一次读取并保存整个层次结构。
由于我一般是 ORM 和 ORMLite 的新手,所以我不知道当读取数据库中具有相同 ID的对象时,它们不会被创建为具有相同 Identity的实际相同对象,但作为具有相同 ID 的几个重复项。意思是,我现在面临的问题是(假设“->”代表“指”)A -> B -> C!= C -> B -> A。
我正在考虑通过提供的 DAO 手动读取它们并通过它们的 ID 将它们放在一起来解决问题,确保具有相同 ID 的对象具有相同的身份。
是否有 ORMLite-native 解决此问题的方法?如果是,它是什么,如果不是,解决这个问题的常用方法是什么?这是ORM的普遍问题吗?它有名字吗(我想了解更多)?
编辑:
我的层次结构是,一个建筑物包含多个楼层,每个楼层都知道它的建筑物,每个楼层都包含几个区域,每个区域都知道它的楼层。
ormlite - Ormlite 新手查询帮助
Ormlite 和 Android/Sqlite 有一些问题,所以任何帮助表示赞赏。数据库结构为
查询是
抛出以下错误
如果我将 id 作为字符串值传递,为什么它不会在查询中显示?
抛出的最终错误是
我认为这与原始错误有关?
提前致谢
android - 在android上使用ormlite删除?
我有一个客户端 bean,
和一个城市豆,
这些 bean 只是一个示例,但假设我想在删除城市时删除所有具有外国城市 cityId 的客户端。
请问这怎么可能?
android - 在两个线程中同时执行两个 SQLite 事务
我的 Android 应用程序中有一个特定的更新方法,它会生成相当多的数据 - 多达数百个数据库条目。除了 UI 线程,我还有一个后台服务。两个线程都必须执行更新方法,有时甚至同时执行——基本上,这是关于生成和缓存要显示的数据。UI 和后台服务都需要这些数据。
目前,我已经将方法的执行包装在一个 ORMLite 事务中,该事务映射到一个普通的 SQLite 事务。但是,恐怕有一天,当某些竞争条件破坏了数据缓存时,这会咬我一口。
问题:SQLite 事务是否保护我免受并发执行,或者我应该实现某种在生成器方法启动时产生的工作线程,或者如果生成器方法已经运行则阻塞?
更新:
我决定不依赖 SQLite 逻辑来保护我的高级 Java 方法。解决方案对我来说如下:
- 将方法的生成部分包装为
synchronized
- 引入一个变量,跟踪最后一次执行方法的时间(设置在方法的最后,所以它是执行结束的标志)
- 本节中的第一件事
synchronized
,检查最后一次执行是否在特定阈值内(例如过去 <= 100ms)- 如果是,跳过生成
- 如果没有,执行生成
这样,就不应该发生重复生成,因为当同时从两个线程访问该方法时,第一个会生成,而第二个不会。对我来说最重要的部分是它仍然是阻塞的,因为两个线程都依赖于它们调用该方法后发生的生成。
android - ORMLite 和图像在 Android 上另存为 BLOB
所以我最近在我正在编写的 android 平板电脑应用程序中将我的数据库内容切换到了 ORMLite。到目前为止一切顺利,大多数东西都被重构/重新编码。尽管我对最初作为 BLOB 存储在数据库中的内容有疑问。在我的原始数据模型中,它看起来像这样:
但我认为我不能在 ORMLite 中使用它,最好我可以告诉它必须是一个字符串,所以现在我有了:
但是现在,我对如何将这些数据位读取和写入字节等感到困惑......我正在使用这样的代码将数据传输到数据库和从数据库传输数据:
所以现在这就是我保存图像的方式,如果 ORMLite 中没有 BLOBS 并且我必须使用字符串,我不知道该怎么做?
为了完整起见,这就是我显示图像的方式:
那么我必须做些什么才能让这些图像进出数据库,字符串的字段类型对于“Blob”是否正确?
java - 日历 .YEAR、.MONTH、DAY_OF_MONTH 与 date.getDay() 等不同?
我意识到这一点:
和这个:
产生不同的数字,我缺少一些初始化吗?我很在意,因为我正在使用 ORMLite 并尝试将日期存储到数据库中,这是一个 Date 对象,但 Date 已被弃用,因此我现在尝试使用 Calendar 但它似乎并不那么简单,因为上面的代码导致日、月、年的不同答案。
ormlite - ORMLite 中 dao.createOrUpdate() 的结果
我想知道是否有可能找出 ORMLite 的dao.createOrUpdate()
方法是否实际创建或更新了表行。有一个结果对象 ( CreateOrUpdateStatus
),其中包含这些信息,但所有指示字段 (created
和updated
)numLinesChanged
仅对包可见。这是一个错误还是有人知道为什么会这样?
谢谢。