草庐IT

random_room

全部标签

java - Android Studio Room Persistence - 每个实体是否应该有一个单独的 DAO,这对存储库类有何影响?

如果我有一个包含两个表/实体(A和B)的数据库(DB),我应该为每个实体创建一个DAO吗?(即DAO_A和DAO_B),或者我是否为包含这两个表的整个数据库创建一个DAO?然后关于存储库,这是整个数据库(整个数据库)的存储库还是仅包含我想要类的相关DAO(即DAO_A和DAO_B)的数据库的存储库。(实际上我想我在这里要问的是数据库是否有多个存储库或只有一个存储库,每个实体是否必须有自己的DAO,或者我可以做一个通用的D 最佳答案 我会说每个实体都有自己的DAO。为什么?因为您正确地将它们分开了。假设您有一个包含实体A和B的DAO。

java - Android - 无法解析以下类的父类(super class)型 - (Room Persistant Library,Android Library Module)

在我的Android项目(Kotlin)中,我想为我的数据层使用Room持久库。但是当我为RoomPersistent库添加依赖项时,构建项目突然开始失败。我收到的错误:这是我的项目级别build.gradle//Top-levelbuildfilewhereyoucanaddconfigurationoptionscommontoallsub-projects/modules.buildscript{ext{globalCompileSdkVersion=26globalMinSdkVersion=19globalTargetSdkVersion=26kotlin_version='

java - 这个方法比 Math.random() 快吗?

我是一名初学者,目前正在着手开发一款使用粒子群优化算法的Android游戏。我现在正在尝试稍微优化我的代码,并且我在for循环中有很多Math.random()几乎一直在运行。所以我在想一种绕过并跳过所有Math.random()调用的方法。通过使用这样的方法:floatrandom[]=newfloat[100];staticintrandomIndex=0;privatefloatmyRandom(){if(randomIndex>=99)randomIndex=0;elserandomIndex=randomIndex+1;returnrandom[randomIndex];}.

android - Room 数据库是否支持实体中的 bool 变量?

我知道sqlite不支持Boolean,我们需要使用int列来模仿Boolean的行为。但是Room支持Boolean吗?如果我的实体中有bool值怎么办?它会按预期工作吗? 最佳答案 是的。当您使用room存储bool值时,它会自动存储1表示true和0表示false。阅读时也是如此。它将1或0分别转换为true/false。编辑:我想通过给出一个迁移示例来补充这个答案,其中添加了一个bool列:原始实体@Entity(tableName=TABLE_NAME)dataclassSessionEntity(@PrimaryKey(

android - 如何在 Room 中查询复杂的嵌套对象?

我有几个实体,您可以在下面看到,问题是当您有不止一层嵌套时如何正确选择嵌套列表。如果您在github上查看Google存储库,你可以找到非常简单的例子,但不是复杂的东西。正如文档所说here,Room不允许对象引用。如何获得ResultObject(以及它的外观)包括所有嵌套列表?ResultObject应该有这个信息:ListDialog实体有List.Message有List.ImageContent有List对话框@Entity(tableName="dialog")dataclassDialog(@PrimaryKeyvalidString,valtitle:String)留言

android - Kotlin 数据类、Android Room 和自定义 setter

我得到了一个AndroidRoom的实体,看起来像那样。到目前为止,不用担心。@Entity(tableName="users",indices=arrayOf(Index(value="nickName",unique=true)))dataclassUser(@ColumnInfo(name="nickName")varnickName:String,@ColumnInfo(name="password")varpassword:String){@ColumnInfo(name="id")@PrimaryKey(autoGenerate=true)varid:Long=0}现在我需

java - 无法使用 Gson 将对象(使用 Room DB)序列化为 json 字符串

我有一个类Item(见下文),我在其中使用了一些Roomdb注释。它还有一个名为ItemInfo的嵌套类。这两个类都有一个空的构造函数。问题是,当我尝试序列化Item类的对象时,应用程序崩溃并出现以下错误:E/AndroidRuntime:FATALEXCEPTION:mainProcess:com.android.carrymates,PID:18526java.lang.SecurityException:Cannotmakeajava.lang.reflect.Methodconstructoraccessibleatjava.lang.reflect.AccessibleObj

java - "Type of the parameter must be a class annotated with @Entity"在 Room 中创建 Generic DAO 接口(interface)时

我正在使用Room架构组件来实现持久性。我创建了通用的DAO接口(interface)以避免样板代码。RoomProTips但是我的代码没有编译说“错误:(21、19)错误:参数的类型必须是用@Entity注释的类或其集合/数组。”对于通用类T。interfaceBaseDao{@Insert(onConflict=OnConflictStrategy.REPLACE)voidinsert(T...entity);@Updatevoidupdate(Tentity);@Deletevoiddelete(Tentity);}@DaopublicabstractclassReasonDao

android - Room - 检查最近是否获取了数据

官方GuidetoAppArchitecture是存储库的一个例子。检查一个对象是否存在于数据库中以及是否是新的://checkifuserwasfetchedrecentlybooleanuserExists=userDao.hasUser(FRESH_TIMEOUT);关于如何为DAO实现该功能(hasUser)有什么想法吗? 最佳答案 大多数架构组件示例可用here.在你的例子中,我找不到UserDao类,但有一个数据库模式示例here.users表有一个last_update列。所以你可以这样写UserDao:@Query(

android - 使用Room时如何加密数据库?

我们想在我们正在开发的应用程序中使用Room,但我们需要加密数据库。我知道有用于加密SQL数据库的SQLCipher(虽然我从未使用过它),但我认为它不支持API级别16和更高级别的方法,所以我认为Room不受支持。另一方面,有支持加密的Realm,但我真的很想改用Room。那么我们如何加密数据库呢?非常感谢 最佳答案 IthinkthatitdoesnotsupportAPIlevel16andhighermethods,soIthinkthatRoomisnotsupported嗯,到目前为止,myCWAC-SafeRoomli