在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;
}
}