如何从 sqlite table 中加载多个 EDITTEXT 的数据

how to load data from a sqlite table for several EDITTEXT

我无法获取此数据并显示在 activity 上,有人可以帮助我吗?我如何调用 DAO 并传递此数据?

到目前为止已使用 classes 的所有痕迹来解决此问题。

Class 型号

 @DatabaseTable(tableName = "pessoa")
public class Pessoa implements EntidadePersitivel {
    @DatabaseField(generatedId = true)
     private int id;
    @DatabaseField
     private int codigo;
    @DatabaseField
     private  String nome;
    @DatabaseField
     private String cnpjCpf;


    public void setUf(String uf) {
        this.uf = uf;
    }

    @DatabaseField
     private String rgIE;
    @DatabaseField
     private String cep;
     @DatabaseField
    private String uf;
    @DatabaseField
     private String cidade;
    @DatabaseField
     private String bairro;
    @DatabaseField
     private String endereco;
    @DatabaseField
     private  String numero;
    @DatabaseField
     private String complemento;
    @DatabaseField
     private  String foneComercial;
    @DatabaseField
     private  String foneResidencial;
    @DatabaseField
     private  String foneCelular;
    @DatabaseField
     private  String email;


    public Pessoa(int id, int codigo, String nome, String cnpjCpf, String rgIE,
                  String cep, String cidade, String bairro, String endereco,
                  String numero, String complemento, String foneComercial, String foneResidencial, String foneCelular, String email) {
        this.id = id;
        this.codigo = codigo;
        this.nome = nome;
        this.cnpjCpf = cnpjCpf;
        this.rgIE = rgIE;
        this.cep = cep;

        this.cidade = cidade;
        this.bairro = bairro;
        this.endereco = endereco;
        this.numero = numero;
        this.complemento = complemento;
        this.foneComercial = foneComercial;
        this.foneResidencial = foneResidencial;
        this.foneCelular = foneCelular;
        this.email = email;
    }

    public Pessoa() {

    }

classDAO

  */

public class PessoaDao extends BaseDaoImpl<Pessoa, Integer> {
    public PessoaDao(ConnectionSource connectionSource) throws SQLException {
        super(Pessoa.class);
        setConnectionSource(connectionSource);
        initialize();


    }

}

class 数据库助手

public class DatabaseHelper extends OrmLiteSqliteOpenHelper {

    private static final String dataBaseName= "central";
    private static final int version =1;

    public DatabaseHelper(Context context) {
        super(context, dataBaseName, null, version);
    }


    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource) {

        try {
            TableUtils.createTable(connectionSource,LoginSeralizable.class);
            TableUtils.createTable(connectionSource, Pessoa.class);
        } catch (java.sql.SQLException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, ConnectionSource connectionSource, int oldVersion, int newVersion) {
        try {
            TableUtils.dropTable(connectionSource, LoginSeralizable.class,true);
            TableUtils.dropTable(connectionSource, Pessoa.class, true);

            onCreate(sqLiteDatabase, connectionSource);
        } catch (java.sql.SQLException e) {
            e.printStackTrace();
        }

    }

   @Override
    public  void close(){
        super.close();
    }
}

错误日志

致命异常:Thread-284

                                                                         Process: routerbox.com.br.centraisdoassinante, PID: 25202
                                                                          java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object routerbox.com.br.centraisdoassinante.routerbox.com.br.centraisdoassinante.Dao.PessoaDao.queryForId(java.lang.Object)' on a null object reference
                                                                              at routerbox.com.br.centraisdoassinante.DadosCadastrais.run(DadosCadastrais.java:49)
                                                                              at java.lang.Thread.run(Thread.java:818)

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object routerbox.com.br.centraisdoassinante.routerbox.com.br.centraisdoassinante.Dao.PessoaDao.queryForId(java.lang.Object)' on a null object reference

您正在尝试在空对象中执行方法 queryForId,这是什么意思?

PessoaDao 是一个非静态 class,这意味着您需要先实例化它才能使用它们的方法。

所以您删除了调用此函数的代码部分,但如果我没记错的话,您有类似的东西:

PessoaDao.queryForId('1');

但你需要做:

PessoaDao pessoaDao = new PessoaDao(yourConnectionSource);
pessoaDao.queryForId('1');

顺便说一句,我想 Pessoa 是葡萄牙语吧?也许你可以在Stack Overflow in portuguese里问,这样我可以更好地回答你,你也不需要应付我糟糕的英语:)

我喜欢 lucas 说过的话,我参考连接和管理

protected void onCreate(Bundle savedInstanceState)  {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_dados_cadastrais);
            databaseHelper = new DatabaseHelper(DadosCadastrais.this);

            new Thread(new Runnable() {
                @Override
                public void run() {

                    try {
                        pessoaDao = new PessoaDao(databaseHelper.getConnectionSource());
                        pessoa= pessoaDao.queryForId(1);
                        edtNome= (EditText) findViewById(R.id.edtNome);
                        edtNome.setText(pessoa.getNome());

                    } catch (SQLException e) {
                        e.printStackTrace();
                    }


                }
            }).start();



    }