作为刚掌握SQLiteDatabase的新手,我的数据库中总是插入了重复的值让我很苦恼,网上又没有一丁点儿的提示,所以只能自己思考,自己摸索。现在想明白了,就给陷入同样苦恼的人一点帮助。
其实思想很简单,就是把待插入的值放到表中查询比照,如果相同就不插入,如果不同就插入,代码如下:
下面情景是添加某个省的名字数据到数据库中,如果该省已经在数据库中则不添加。
for (Province p : provinceList) { //provinceList是存有省名的集合 String provinceName = p.getProvinceName(); //把该省的省名作为查找条件 Cursor cursor = database.query("Province", new String[]{"province_name"}, "province_name = ?", new String[]{provinceName}, null, null, null); if (cursor.getCount() == 0){ Log.d(TAG, "加入"+provinceName+"到数据库中"); //插入数据 ContentValues values = new ContentValues(); values.put("province_name", p.getProvinceName()); values.put("province_code", p.getProvinceCode()); database.insert("Province", null, values); }else { Log.d(TAG, "数据库中已存在" + provinceName); } }
就是这么简单,但是有时候脑子犯糊涂了就会卡住,特此记录。