我从webservice获取数据并将它们插入到activity onCreate()函数中的数据库中。代码如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.contact_person);
RunningService runningService = new RunningService();
runningService.insert(staff);
initView();
}
insert()的代码如下:
public void insertAllStaff(Staff staff){
ContentValues values = new ContentValues();
values.put("name", staff.getName());
Uri uri = contentResolver.insert(CONTENT_URI, values);
}
每次进入此活动时,它都会将数据插入数据库,数据是相同的。
是否有一种方法可以进入此活动并且不会将相同的数据插入数据库?
答案 0 :(得分:1)
如果您不想为表重复值,则必须为您认为的字段定义唯一索引"唯一"。
您可以在表CREATE时执行此操作,也可以使用ALTER SQL语句创建索引。
答案 1 :(得分:0)
SQLite支持INSERT NOT EXISTS语法。
INSERT INTO MyTable(id,text)
SELECT 123, 'Helloworld'
WHERE NOT EXISTS(SELECT 123 FROM MyTable WHERE id = 123');
请使用此语法来提高性能。
您使用解析器的哪个内容提供商?您可能需要更改它并使用其他使用上述SQL语句的内容。