我在JAVA中正确获取记录吗?

时间:2015-02-04 16:48:52

标签: java android sqlite

对不起标题,但我无法想出更具体的内容。

过去7年我是Rails开发人员,现在我正在学习Android应用程序的Java。

在rails中,要从数据库中获取记录,我使用以下命令:

user = User.find(1)

这将返回一个User对象,其中包含我需要的所有列和信息。要访问它们,我只需调用该对象上的方法,例如:user.first_name

在Java中,我正在做这样的事情:

public User getUser(String userEmail, Context context) {
    DBHelper helper = new DBHelper(context);
    db = helper.getWritableDatabase();

    String query[] = { userEmail };

    SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
    builder.setTables(helper.TABLE_USERS);

    Cursor cursor = null;

    try {
        cursor = builder.query(db, null, " email = ? ", query, null, null, null);

        User user = null;
        if (cursor.getCount() > 0 && cursor.moveToFirst()) {
            user = new User();
            user.setId(cursor.getLong(cursor.getColumnIndex("id")));
            user.setNome(cursor.getString(cursor.getColumnIndex("nome")));
            user.setToken(cursor.getString(cursor.getColumnIndex("token")));
            user.setRole(cursor.getString(cursor.getColumnIndex("role")));
        }

        return user;
    } finally {
        cursor.close();
    }
}

这是对的吗?我是否真的需要实例化一个空的User对象并通过从数据库中请求它们来手动填充每个属性(即user.setId(cursor.getLong(cursor.getColumnIndex("id")));

是否有更简单的方法来获取记录并使用它们而不需要所有这些?

0 个答案:

没有答案