安卓SQLite的增删改查

本文介绍了如何在安卓中使用SQLite数据库进行增删改查操作。通过StudentDao类展示了添加、删除、更新和查询学生信息的方法,包括使用ContentValues和SQL语句实现数据操作,并确保资源的正确关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * 学生信息数据库的dao( data access objcet)
 * 增删改查
 */
public class StudentDao {
private StudentDBOpenHelper helper;

/**
* 只有一个有参的构造方法,要求必须传入上下文
* @param context
*/
public StudentDao(Context context) {
helper = new StudentDBOpenHelper(context);
}
/**
* 添加一个学生
* @param name 姓名
* @param sex 性别,male female
* @return result 添加到数据库的那一行, -1添加失败
*/
public long add(String name,String sex){
SQLiteDatabase  db = helper.getWritableDatabase();
//db.execSQL("insert into student (name,sex) values (?,?)", new Object[]{name,sex});
ContentValues values =new ContentValues();
values.put("name", name);
values.put("sex", sex);
long result = db.insert("student", null, values); //组拼sql语句实现的.带返回值
db.close();//释放资源
return result;
}

/**
* 删除一个学生
* @param name 姓名
* @return result 删除了几行 0 代表删除失败
*/
public int delete(String name){
SQLiteDatabase  db = helper.getWritableDatabase();
//db.execSQL("delete from student where name=?",new Object[]{name});
int result = db.delete("student", "name=?", new String[]{name});
db.close();//释放资源
return result;
}

/**
* 修改一个学生的性别
* @param name 姓名
* @param newsex 新的性别
* @return 更新了几行 0更新失败
*/
public int update(String name,String newsex){
SQLiteDatabase  db = helper.getWritableDatabase();
//db.execSQL("update student set sex =? where name=?",new Object[]{newsex,name});
ContentValues values = new ContentValues();
values.put("sex", newsex);
int result = db.update("student", values, "name=?", new String[]{name});
db.close();//释放资源
return result;
}
/**
* 查询学生的性别
* @param name 学生的姓名
* @return 学生性别 null代表学生不存在
*/
public String find(String name){
String sex = null;
SQLiteDatabase  db = helper.getReadableDatabase();
//结果集 游标
//Cursor cursor = db.rawQuery("select sex from student where name=?", new String[]{name});
Cursor cursor = db.query("student", new String[]{"sex"}, "name=?", new String[]{name}, null, null, null);
boolean result = cursor.moveToNext();
if(result){
sex = cursor.getString(0);
}
cursor.close();//释放资源
db.close();
return sex;
}
/**
* 获取全部的学生信息
* @return
*/
public List<Student> findAll(){
List<Student> students =new ArrayList<Student>();
SQLiteDatabase  db = helper.getReadableDatabase();
//Cursor cursor = db.rawQuery("select name, sex from student", null);
Cursor cursor =  db.query("student", new String[]{"name","sex"}, null, null, null, null, null);
while(cursor.moveToNext()){
String name = cursor.getString(0);
String sex = cursor.getString(1);
Student student = new Student();
student.setName(name);
student.setSex(sex);
students.add(student);
}
cursor.close();
db.close();
return students;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值