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
Sqlite-以编程方式增加数据库_Sql_Sqlite_Generics_Mobile_Reflection - Fatal编程技术网

Sqlite-以编程方式增加数据库

Sqlite-以编程方式增加数据库,sql,sqlite,generics,mobile,reflection,Sql,Sqlite,Generics,Mobile,Reflection,我的问题既容易又难。我会尽力解释清楚的 我希望使实体能够以编程方式增长或创建新实体。示例: public class Foo{ public UUID id; public String fooName; } 我想以编程方式向我的实体添加一些字段,例如,前一个实体应与以下类似: public class Foo{ public UUID id; public String fooName; public String addedField; } 我知道

我的问题既容易又难。我会尽力解释清楚的

我希望使实体能够以编程方式增长或创建新实体。示例:

public class Foo{
    public UUID id;
    public String fooName;
}
我想以编程方式向我的实体添加一些字段,例如,前一个实体应与以下类似:

public class Foo{
    public UUID id;
    public String fooName;
    public String addedField;
}
我知道我不能编辑我的类的文本,但我可以通过编程向数据库中添加一些字段。问题是,即使数据库中有
n
字段,但该类的字段较少,适配器也不会创建更大的类,并且只会丢失数据库中的字段

我想我可以做一些事情,比如只使用泛型和反射。我很确定它会起作用,但是有没有更简单的方法来实现这一点

谢谢大家

编辑

我忘记了更多的规格:

我使用SQLite进行移动开发。让我们谈谈Android,它是我使用最多的一个

在android中,您必须将从数据库中检索到的游标对象转换为一个由类建模的公共对象。我的问题是,我也可以通过编程方式在数据库中添加列和表,但它们不会在对象中检索,因为类没有写入.java文件中。(对于Windows phone也是如此)


有解决方法吗?

您能更精确地描述一下您正在使用的“适配器”吗?它是什么?SQLite是用C编写的。即使您通过C或其他语言访问它,您也可以发送SQLite SQL语句来更改表。这就是我所说的“以编程方式”。请注意,SQLite只允许更改表名和添加新列。如果要进行更复杂的更改,则需要几个SQL语句来实现这些更改。在stackoverflow这里已经有很多问题和答案了。我可能忘记了一些标记,因为sqlite通常由移动应用程序使用,所以您需要一个“适配器”来将sqlite游标转换为“真实”对象。适配器从游标获取所有值,并将它们还原为真实对象。这个适配器与类一起工作,问题是通过sql语句以编程方式添加列,而不是将它们添加到类中,问题是:从数据库检索的对象将不会添加列,我希望我能更好地解释它,这使它更清楚一点。但是,我仍然建议您提供您正在使用的工具的确切名称。这将增加获得正确答案的机会。我认为你关于sqlite通常被移动应用程序使用的假设是错误的。它有更多的应用程序。我把它用于我的网站和其他小项目。我认为sqlite的存在时间比智能手机长得多。哦,对不起,我不知道。谢谢你的回复,我会尽快解决我的问题。再次感谢,祝你有愉快的一天!看见