1. 程式人生 > >安卓SQLite的增刪改查

安卓SQLite的增刪改查

/**
 * 學生資訊資料庫的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;
}

}