前言
还是和上一篇博客感觉一样,感觉视频内容过多,做个笔记整理一下帮助消化
删除数据
public long deleteByName(String name) {
//删除所有 mWDB.delete(TABLE_NAME,"1=1",null);
return mWDB.delete(TABLE_NAME, "name=?", new String[]{name});
}
这里的"name=?"
是筛选条件,后面的new String[]{name}
是代替?
的内容,也就是说删除name = 传进来的name的数据
更改数据
方法
public long update(User user) {
ContentValues values = new ContentValues();
values.put("name", user.name);
values.put("age", user.age);
values.put("height", user.height);
values.put("weight", user.weight);
values.put("married", user.married);
return mWDB.update(TABLE_NAME, values, "name=?", new String[]{user.name});
}
使用
if (view.getId() == R.id.btn_update)
{
user = new User(name,
Integer.parseInt(age),
Long.parseLong(height),
Double.parseDouble(weight),
married);
if (mHelper.update(user) > 0)
{
ToastUtil.show(this,"修改成功");
}
}
查询数据
查询所有
public List<User> queryAll() {
List<User> list = new ArrayList<>();
Cursor cursor = mRDB.query(TABLE_NAME, null, null, null, null, null, null);
while (cursor.moveToNext()) {
User user = new User();
user.id = cursor.getInt(0);
user.name = cursor.getString(1);
user.height = cursor.getLong(2);
user.weight = cursor.getDouble(3);
user.married = cursor.getInt(4) != 0;
list.add(user);
}
return list;
}
第三个null和第四个null是筛选条件
按指定数据查询
public List<User> queryByName(String name)
{
List<User> list = new ArrayList<>();
Cursor cursor = mRDB.query(TABLE_NAME, null, "name=?", new String[]{name}, null, null, null);
while (cursor.moveToNext()) {
User user = new User();
user.id = cursor.getInt(0);
user.name = cursor.getString(1);
user.height = cursor.getLong(2);
user.weight = cursor.getDouble(3);
user.married = cursor.getInt(4) != 0;
list.add(user);
}
return list;
}
注意观察二者改动
Cursor解释
cursor是游标
cursor.moveToNext()
如果移动到下一行数据返回true,所以这个while循环可以读取到每一行数据并添加到list
使用查询方法
List<User> list = mHelper.queryByName(name);
for (User u : list) {
Log.d("sch", u.toString());
}
结语
写的有点水,希望能帮助到你或者日后的我