Sql中Insert添加语句如何不重复

在Insert中添加一个查询语句query,如果该列表中有查询值则返回false
代码如下:

//insert data
    public boolean insertData(MyData data){
        String str = "";
        long resCode = -1L;
        // 创建ContentValues对象
        ContentValues values = new ContentValues();
        // 向该对象中插入键值对,其中键是列名,值是希望插入到这一列的值,值必须和数据库当中的数据类型一致

        //查询语句查该值
        Cursor cursor = sqliteDatabase.query("user", new String[]{"id"}, "id = ?", new String[]{data.getId()}, null, null, null);
        if(cursor!=null){
            while(cursor.moveToNext()){
                str = cursor.getString(0);
            }
        }

        //判断是否存在
        if(str.equals(data.getId())){
            Toast.makeText(context, "添加失败", Toast.LENGTH_LONG).show();
        }else{
            values.put("id", data.getId());
            values.put("name", data.getAddress());
            resCode = sqliteDatabase.insert("user", null, values);
        }
        if(resCode == -1) return false;
        return true;

    }

activity部分代码:

case R.id.myButton_3:
    // 获取值
    text1 = myedittext1.getText().toString();
    text2 = myedittext2.getText().toString();

    MyData data = new MyData();
    data.setId(text1);
    data.setAddress(text2);

    boolean res = myUtils.insertData(data);
    if(res == true){
        Toast.makeText(SQLiteActivity.this,"添加成功", Toast.LENGTH_LONG).show();
    }else{
        Toast.makeText(SQLiteActivity.this,"添加失败", Toast.LENGTH_LONG).show();
        }
    break;

class MyData:

package com.example.sqlite;

import java.io.Serializable;

public class MyData implements Serializable{
    private String id = "";
    private String address = "";
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值