如何使用greendao或ORMLite在数据库中动态创建表?

时间:2014-09-17 11:44:18

标签: android sqlite ormlite greendao

如何使用greendao或ORMLite在数据库中动态创建表?我想在用户按下按钮时在数据库中创建新表,对于数据库中的每个新表,数据模型是相同的但我需要具有不同名称的表。这可能吗?

2 个答案:

答案 0 :(得分:1)

关于greendao:

无法动态创建新表。使用greendao,J2SE-Application(使用daogenerator)在开发站上创建处理数据库的代码。

关于Ormlite:

到目前为止我还没有使用过Ormlite,但我认为可以在运行时生成新表。

结论:

IMHO数据库设计,你必须在运行时创建新表是不好的做法,因为你无法从ORM框架中受益。像这样的设计也很难维护(如果不是不可能的话)和/或测试。最重要的是,对于其他开发人员而言,这样的设计可能难以理解,因为它实际上并不常见。 因此,您应该重新设计数据库架构。

答案 1 :(得分:0)

您可以使用SQLite

public void createUserTable(DatabaseOperations d, String user) {
    final SQLiteDatabase db = getWritableDatabase();
    String CREATE_TABLE_NEW_USER = "CREATE TABLE " + user + " (" + UserInfo.NOTES + " TEXT)";
    db.execSQL(CREATE_TABLE_NEW_USER);
    db.close();
}