码咯 执行sql语句 和封装好的方法
查询
private void query() {
StringBuffer sb=new StringBuffer("select * from student where 1=1");
//参数集合
List<String> params=new ArrayList<>();
if(!TextUtils.isEmpty(id)){
sb.append(" and _id=?");
params.add(id);
}
if(!TextUtils.isEmpty(phone)){
sb.append(" and phone=?");
params.add(phone);
}
if(!TextUtils.isEmpty(name)){
sb.append(" and name=?");
params.add(name);
}
if(!TextUtils.isEmpty(gender)){
sb.append(" and gender=?");
params.add(gender);
}
SQLiteDatabase db=helper.getReadableDatabase();
String [] projection=new String [params.size()];
params.toArray(projection);
//返回值 游标
Cursor cursor=db.rawQuery(sb.toString(),projection);
//判断游标是否为空,是否有一个值
while(cursor!=null&&cursor.moveToNext()){
// getColumnIndex获取列的下标 cursor.getXXXX()获取指定列的值
String name=cursor.getString(cursor.getColumnIndex("name"));
Integer id=cursor.getInt(cursor.getColumnIndex("_id"));
}
}
用不到的参数就让它为空吧 遍历数据就while循环就好咯
Cursor c = db.query("student",null,null,null,null,null,null);//查询并获得游标
更新
private void update() {
StringBuffer sb=new StringBuffer("update student set ");
List params=new ArrayList();
if(!TextUtils.isEmpty(phone)){
sb.append("phone=?,");
params.add(phone);
}
if(!TextUtils.isEmpty(name)){
sb.append("name=?,");
params.add(name);
}
if(!TextUtils.isEmpty(gender)){
sb.append("gender=?,");
params.add(gender);
}
if (params.size()!=0){
//更新操作拼接字符串末尾有一个","需要去除
//删除最后一位的“,”
sb.setLength(sb.length()-1);
sb.append(" where 1=1");
//通过id指定 更新那行数据
if(!TextUtils.isEmpty(id)){
sb.append(" and _id=?");
params.add(id);
}else{
Toast.makeText(this,"请填写id",Toast.LENGTH_SHORT).show();
return;
}
SQLiteDatabase db=helper.getWritableDatabase();
Object [] o=new Object[params.size()];
params.toArray(o);//将数据存放到指定的数组中
db.execSQL(sb.toString(),o);
}
}
ContentValues cv = new ContentValues();//实例化ContentValues
cv.put("name","123");//添加要更改的字段及内容
String whereClause = "phone=?";//修改条件
String[] whereArgs = {"12312313213"};//修改条件的参数
db.update("student",cv,whereClause,whereArgs);//执行修改
删除
private void delete() {
getAllText();
//拼接sql语句
StringBuffer sb=new StringBuffer("delete from student where 1=1");
//保存参数的list
List params=new ArrayList();
//判断条件 动态拼接
if(!TextUtils.isEmpty(id)){
sb.append(" and _id=?");
params.add(id);
}
if(!TextUtils.isEmpty(phone)){
sb.append(" and phone=?");
params.add(phone);
}
if(!TextUtils.isEmpty(name)){
sb.append(" and name=?");
params.add(name);
}
if(!TextUtils.isEmpty(gender)){
sb.append(" and gender=?");
params.add(gender);
}
SQLiteDatabase db=helper.getWritableDatabase();
if (params.size()!=0){
Object [] o=new Object[params.size()];
params.toArray(o);//将数据存放到指定的数组中
//执行删除
db.execSQL(sb.toString(),o);
}else{
db.execSQL(sb.toString());
}