简单的问题,但我找不到任何像样的文档。我已经创建了我的SQLite数据库,但它有两个问题或一个问题,这取决于你如何看待它!数据库创建良好,我可以在基本列表视图中显示数据,但是在更改手机/模拟器的方向时,插入语句会再次运行并重复所有记录。我猜这与所有代码都放置在OnCreate()方法中有关。然而,我的主要问题是如何进行INSERT UNIQUE或查询数据库以查看记录是否存在?我只能在Android平台上找到一些关于SQLite DB参数的文档。非常感谢您的帮助!祝贺你!
SQLite有一个INSERT OR REPLACE
命令(简称REPLACE
,或使用SQLiteDatabase.replace()
)可以实现你想要的功能。
不过,我建议您的应用程序不应该在每次创建Activity时重新插入数据库,除非确实需要,因此您可能需要考虑更改设计。
首先,您需要解决屏幕方向变化的问题。在每次屏幕方向变化时访问数据库会消耗大量资源。
其次,关于检查重复记录的问题,您可以将列定义为唯一的,例如:
CREATE TABLE table_name(column_definition, unique(column_names) ON CONFLICT replace);` hen
String
,但也有Long
的方法。stringForQuery(SQLiteDatabase db, String query, String[] selectionArgs)
String myString=DatabaseUtils.stringForQuery(getDB(),query,selectionArgs);
Long
值,你的查询应该是类似这样的。select count(*) from mytable where field1='stringtocheckagainst'
long count = DatabaseUtils.queryNumEntries(getDB(), table, query, selectionArgs);