gpt4 book ai didi

Android ormlite 更新序列化对象中的行

转载 作者:行者123 更新时间:2023-11-29 00:40:27 27 4
gpt4 key购买 nike

我有 3 个表:

@DatabaseTable(tableName="user")
public class TableUser implements Serializable{

@DatabaseField(dataType = DataType.SERIALIZABLE)
private LinkedList<TableProfile> profiles;
}

@DatabaseTable(tableName="profile")
public class TableProfile implements Serializable{

@DatabaseField(dataType = DataType.SERIALIZABLE)
private LinkedList<TableRevel> revelations;
}

@DatabaseTable(tableName="revel")
public class TableRevel implements Serializable{
private String our_profile_id;
@DatabaseField(canBeNull=false)
private String other_profile_id;
@DatabaseField(canBeNull=false)
private String info;
@DatabaseField(canBeNull=false)
}

我需要更新“revel”表中的文件,我从没有对象“user:{profile:...}”的 Json 中得到启示

我想我需要使用 QueryBuilder,如果可以的话,请编写这个查询的简短示例。

最佳答案

我会强制列名是静态的,这样你就可以在上面搜索。像这样:

@DatabaseTable(tableName="revel")
public class TableRevel implements Serializable{
public static final String PROFILE_ID = 'id';
@DatabaseField(canBeNull=false, columnName = PROFILE_ID)
private String our_profile_id;
@DatabaseField(canBeNull=false)
private String other_profile_id;
@DatabaseField(canBeNull=false)
private String info;
}

然后我会做这样的事情来做更新:

public class foo extends OrmLiteSqliteOpenHelper {
...

public updateField(String jsonString) throws SQLException{
Dao<TableRevel, String> revelDAO = getDao(TableRevel.class);
QueryBuilder<TableRevel, String> queryBuilder = revelDAO.queryBuilder();
queryBuilder.where().eq(TableRevel.PROFILE_ID, getIdFromJson(jsonString) );
PreparedQuery<TableRevel> preparedQuery = queryBuilder.prepare();
TableRevel revelEntry = revelDAO.queryForFirst();

//update the entry here
...

revelDAO.update(revelEntry); //update the data

我编写了一个使用 OrmLite 的项目。执行大量 sql 操作的类的链接在这里:https://github.com/kopysoft/Chronos/blob/development/ChronosApp/src/com/kopysoft/chronos/content/Chronos.java

希望这对您有所帮助!

关于Android ormlite 更新序列化对象中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9741200/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com