Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中创建findAll()方法_Android_Sqlite_Dao - Fatal编程技术网

如何在android中创建findAll()方法

如何在android中创建findAll()方法,android,sqlite,dao,Android,Sqlite,Dao,如何在android中创建findAll?我已经试过了,但我不能做到 公开名单{ 游标c=mDb.rawQuery选择*自+表_名称;} 这是Medicament.java public class Medicament { private long id; private String nom; private String fabriquant; private String pharmacie; private String descriptio

如何在android中创建findAll?我已经试过了,但我不能做到

公开名单{ 游标c=mDb.rawQuery选择*自+表_名称;}

这是Medicament.java

public class Medicament {
    private long   id;
    private String nom;
    private String fabriquant;
    private String pharmacie;
    private String description;
    private float prix;

    public Medicament( long id, String nom, String fabriquant, String pharmacie, String description, float prix ) {
        super();
        this.id = id;
        this.nom = nom;
        this.fabriquant = fabriquant;
        this.pharmacie = pharmacie;
        this.description = description;
        this.prix = prix;
    }

    public long getId() {
        return id;
    }

    public void setId( long id ) {
        this.id = id;
    }

    public String getNom() {
        return nom;
    }

    public void setNom( String nom ) {
        this.nom = nom;
    }

    public String getFabriquant() {
        return fabriquant;
    }

    public void setFabriquant( String fabriquant ) {
        this.fabriquant = fabriquant;
    }

    public String getPharmacie() {
        return pharmacie;
    }

    public void setPharmacie( String pharmacie ) {
        this.pharmacie = pharmacie;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription( String description ) {
        this.description = description;
    }

    public float getPrix() {
        return prix;
    }

    public void setPrix( float prix ) {
        this.prix = prix;
    } }
编辑:请不要忘记返回语句

提前谢谢。

这样做

Cursor c = mDb.rawQuery( "select * from " + TABLE_NAME,null);

在SQLiteOpenHelper中尝试类似的操作:

public List<Medicament> findAll() {
    List<Medicament> medicaments = new ArrayList<Medicament>();
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery( "SELECT * FROM " + TABLE_NAME,null);
    if (cursor.moveToFirst()) {
        do {
            Medicament medicament = new Medicament();

            /*fill here medicament object with values from row, 
            cursor.getString(0) = id value, cursor.getString(1) etc...
            for example medicament.setName(cursor.getString(1))*/

            medicaments.add(medicament);

        }
        while (cursor.moveToNext());
    }
    return medicaments;
}
编辑:


请记住对单元格中的值类型正确使用方法,例如,对于整数值,请使用cursor.getIntCOLUMN\u NUMBER,对于字符串cursor.getStringCOLUMN\u NUMBER等。

如果它甚至被编译,我会感到惊讶。返回语句呢,请发布完整的代码,伙计,我怎么知道你的表中有哪些字段,以及你的类药物是什么样子的。如果你发布了查询,那么我认为你被查询卡住了。所以,请精确地定义这个问题以及您的问题所在。非常感谢,还有一个简单的问题:我可以在SQLiteOpenHelper类中放置什么样的方法?我不能简单地把它放在另一个扩展DAODatabase类的DAO类中吗?@rzqr例如用于向表中添加药剂、移除等的方法。创建扩展SQLiteOpenHelper的单独类。您有一个非常简单的例子来说明如何扩展SQLiteOpenHelper类。但是,在Android中使用DAO模式不是一个好的实践,或者它是不必要的?@rzqr这是一个非常好的实践。例如,如果您修改了数据库,应用程序的其他部分就不应该知道,他们只需要使用您的简单界面与数据库通信。