首页 > 解决方案 > 领域数据库不写入数据

问题描述

我试图使用领域写入数据库,但它确实写入了值。我还添加了

应用插件:'android-apt' 应用插件:'realm-android'

我在异步任务中使用它。下面如何正确写入领域数据库

protected Integer doInBackground(Integer[] p1)
{
    Realm.init(acti);
    RealmConfiguration otherConfig = new RealmConfiguration.Builder().directory(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/xMapper/"+fileN)).build();
    Realm.setDefaultConfiguration(otherConfig);
    realm = Realm.getDefaultInstance();

    for (File file:foxReaderLost)
    {   
        final byte[] x=utilz.compress(FileUtils.readFileToString(file));
        final String y=file.getName();

        realm.executeTransaction(new Realm.Transaction(){
                @Override
                public void execute(Realm p1)
                {
                    IconModel icm=p1.createObject(IconModel.class);
                    icm.setName(y);
                    icm.setSource(x);
                }
            });
     }
}

我的领域对象

public class IconModel extends RealmObject {
    private byte[] msource;
    private String mname;

    public void setSource(byte[] lastName)
    {
        this.msource = lastName;
    }

    public void setName(String firstName)
    {
        this.mname = firstName;
    }
}

标签: javaandroidrealm

解决方案


初始化您的项目,如果您还没有扩展的类,Application只需创建一个。

class App extends Application {

    @Override
    public void onCreate() {
        Realm.init(acti);
        RealmConfiguration otherConfig = new RealmConfiguration.Builder().directory(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/xMapper/"+fileN)).build();
        Realm.setDefaultConfiguration(otherConfig);
    }
}

然后你只需要调用Realm.getDefaultInstance()来获取一个领域对象来查询/插入/更新/删除你的数据库。


推荐阅读