Android / Java SQL数据库独立于实体

时间:2015-09-02 11:20:39

标签: java android sqlite dao

我在使用SQL进行数据库设计和开发方面经验不足。

我有实体用户

public class User {
    String name;
    String secondName;
}

DAO

public interface UserDAO {
    // save
    void persistUser(User user);
    // obtain from DB
    User retrieveUser();
}

实施:

public class LibraryUserDAO implements UserDAO{

    /** SQL database actually*/    
    private SQLiteOpenHelper database;

    void persistUser(User user){
        // saving to DB
    }

    User retrieveUser(){
        // obtain from DB
    }
}

我有一个问题。

  

是否可以独立于用户类更改保存到DB进程?

例如:现在,您可以看到我有2个字段 - 名称 secondName

立即保存:

    SQLiteDatabase writableDatabase = database.getWritableDatabase();
    writableDatabase.beginTransaction();

    ContentValues cv = new ContentValues();
    cv.put("name", user.name);
    cv.put("secondName", user.secondName);

    writableDatabase.insert("users", null, cv);
    writableDatabase.close();

我希望在您向类year添加新字段(例如User)时,在数据库中,此字段会自动添加为数据库中的新列(如果不是)。 所以总是保持班级SQLiteOpenHelper不变。(如果可能的话)。

1 个答案:

答案 0 :(得分:0)

考虑使用Android的某些ORM,例如ORMLiteGreenDAO。然后,您不必担心结构更改,因为您不必手动将POJO映射到数据库表。