草庐IT

room_choice

全部标签

android - 具有 Room 持久性库的 Kotlin 委托(delegate)

我目前正在使用Kotlin开发一个新的Android应用程序。我尝试实现Room来存储数据,但我没有让它与Kotlin委托(delegate)一起工作。我创建了一个Identifier委托(delegate),以确保id在初始化后不会更改。委托(delegate)看起来像这样:classIdentifier:ReadWriteProperty{privatevarcurrentValue=-1LoverridefungetValue(thisRef:Any?,property:KProperty):Long{if(currentValue==-1L)throwIllegalStateE

android - 如何将现有的 SQLite 表导入 Android Room?

我正在开发一个trivia应用程序,我已经完成了在应用程序中实现RoomPersistence,但是我无法找到可以从应用程序附带的SQLite数据库文件中导入现有表的信息。 最佳答案 似乎有点晚了,但我通过这个解决方案解决了这个问题。在初始化房间数据库之前,您需要将现有的sqlite数据库文件复制到/data/data/{yourpackagename}/databases目录你可以用这个方法复制文件publicstaticvoidcopyDataBase(Contextcontext,StringdbName)throwsIOEx

android - 使用 Room Library 插入 JSON 数据

我有来自服务器的非常复杂的JSON响应。我需要插入本地数据库。下面是我的json响应{"currentdate":"2018-02-27","data":[{"date":"2017-11-05","data":[{"id":268,"schedulId":268,"userId":70,"completedOn":"0000-00-0000:00:00","currentDate":"2018-02-27","workouts":{"workoutDetails":{"workoutDetails":"1DayGainMuscleGYM","workoutName":"GainMus

android - 使用 csv 文件填充 Room 数据库

我需要将9000个城市保存在数据库中以允许用户按城市搜索。我的房间table是:@EntitypublicclassCityextendsModel{@PrimaryKey@NonNullprivateStringid=UUID.randomUUID().toString();privateStringname;privateStringstate;publicCity(@NonNullStringid,Stringname,Stringstate){this.id=id;this.name=name;this.state=state;}@IgnorepublicCity(){}@Ig

java - Room 如何验证数据完整性?数据库版本/哈希存储在哪里?

我的目标是使用Room的新createFromAssetAPI从应用程序Assets加载预加载的数据库。但是,我注意到如果我预加载的数据库在room_master_table中没有有机(由Room生成)id和身份哈希,我会收到“IllegalStateException:Room无法验证数据完整性”。抛出异常。我曾尝试使用由Room生成的精确数据库文件作为它复制过来的预加载数据库并且这有效,但我不确定为什么。这些数据库版本/ID/哈希值似乎保存在某处,Room会根据这些版本对其进行验证。但是我已经尝试删除本地数据库并卸载应用程序,但仍然抛出相同的异常。我想知道room如何在room_m

android - 如何覆盖android.R.layout.simple_list_item_multiple_choice的样式?

我使用adapter=newSimpleCursorAdapter(this,android.R.layout.simple_list_item_multiple_choice,cur,cols,views)创建一个多选控件,但是我对多选控件中textview的样式不满意,只好用下面的代码来新建一个多选控件的布局。效果不错,但是我觉得不是什么好方法,有什么好的代码吗?谢谢!适配器=新的SimpleCursorAdapter(这个,R.layout.mysimple_list_item_multiple_choice,当前、列、View);lv.setAdapter(adapter);l

android - Android Room 中的实体列表关系

我正在尝试加载实体子列表,但我想避免进行2次查询。我正在考虑在TypeConverter中进行查询,但我真的不知道这是否是个好主意。我的实体:@EntityclassRegion(@PrimaryKey(autoGenerate=true)varid:Int=0,varname:String="",varlocales:List=listOf())@Entity(foreignKeys=arrayOf(ForeignKey(entity=Region::class,parentColumns=arrayOf("id"),childColumns=arrayOf("regionId"),

如果退出,Android Room 会部分更新

我遇到了一个我不太确定如何解决的问题。我目前正在从事的项目有一个模型,该模型部分由后端存储的数据和来自本地数据库的数据组成。所以我要存档的是这样的:文章:[BunchofInformation]&[booleanSubscribed]订阅字段是设备绑定(bind)的,不应反射(reflect)后端的任何数据。我的问题是是否可以在Room中实现某种处理以下情况的createIfNotExit()方法:本地不存在的文章:存储副本并设置为已订阅假的出现文章:更新所有信息并保留订阅标志不变我的想法是将模型拆分为一个单独的订阅模型,其中包含对文章的引用。这样我就可以通过@Update(OnCon

Android : Room 数据库的基本用法 —简单应用_一_入门

1.Room介绍:AndroidRoom是Android官方提供的一个持久性库,用于在Android应用程序中管理数据库。它提供了一个简单的API层,使得使用SQLite数据库变得更加容易和方便。以下是AndroidRoom的主要特点:对象关系映射(ORM):Room允许您将Java或Kotlin对象映射到数据库表中。您可以定义数据模型并使用注解来定义关系和约束。事务管理:Room提供了事务管理的功能,可以确保数据的完整性和一致性。它还支持自动提交和回滚机制,类似于JDBC中的事务管理。数据库抽象:Room提供了一个抽象层,使得您可以使用简单的API来执行SQL查询和操作数据库。您不需要编写手

android - 如何在 ROOM DB 中存储货币?

我有实体:@Entity(tableName="products")publicclassProduct{@PrimaryKey(autoGenerate=true)privateLongid;@ColumnInfo(name="amount")privateBigDecimalamount;我需要将它存储在RoomDB中。我无法存储BigDecimal并且我创建了转换器:publicstaticclassConverters{@TypeConverterpublicBigDecimalfromString(Stringvalue){returnvalue==null?null:new