Android:怎么防止向SQLite插入重复的数据

14 篇文章 0 订阅
3 篇文章 0 订阅

作为刚掌握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);
    }
}

就是这么简单,但是有时候脑子犯糊涂了就会卡住,特此记录。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值