gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:29:14 25 4
gpt4 key购买 nike

我在使用 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
}
}

我有一个问题。

Is it possible to make saving to DB process independent for User class changes?

例如:现在,如您所见,我有 2 个字段 - namesecondName

立即保存:

    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();

我希望当您向数据库中的User类添加新字段(例如year)时,该字段会自动添加为数据库中的新列(如果没有)。因此,请始终保持SQLiteOpenHelper类不变。(当然如果可能的话)。

最佳答案

考虑使用一些适用于 Android 的 ORM,例如 ORMLiteGreenDAO 。这样您就不必担心结构更改,因为您不必手动将 POJO 映射到数据库表。

关于java - Android/Java SQL 数据库独立于实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32351762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com