NoteDAO.java
添加和删除的时候需要使用值对象ContentValues
删除、修改、按照ID查询的时候需要使用查询条件 ,?号为占位符
DAO层需要上下文,一般使用构造传参数方案获取
package com.hzj163.mysqlitedb.db;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import com.hzj163.mysqlitedb.beans.Note;
import java.util.ArrayList;
/**
* 作者: 黄志江老师 on 2015/9/21.
* 网址: www.hzj163.com
* 网书: https://www.gitbook.com/@hzj163
* 邮箱: [email protected]
*/
public class NoteDAO {
//需要上下文
Context context;
//需要Db对象
DB db;
//使用构造传递上下文,和实例化Db对象
//Db对象需要依赖上下文
public NoteDAO(Context context) {
//获取上下文
this.context = context;
//获取DB对象
db = new DB(context);
}
//添加方法
public void insert(Note note)
{
//获得SQLiteDatabase对象
SQLiteDatabase sqLiteDatabase= db.getWritableDatabase();
//值对象ContentValues,用于添加和修改
ContentValues contentValues=new ContentValues();
contentValues.put("info",note.getInfo());
contentValues.put("st",note.getSt());
//添加方法insert
sqLiteDatabase.insert("note",null,contentValues);
//关闭
sqLiteDatabase.close();
}
//删除方法
public void del(int id)
{
SQLiteDatabase sqLiteDatabase= db.getWritableDatabase();
//第二个参数为查询的条件,id为字段名,?为占位符
//第三个参数?占位符的值
//返回值Wie影响行数
int i= sqLiteDatabase.delete("note","id=?",new String[]{String.valueOf(id)} );
Log.i("hzj", "i:" + i);
sqLiteDatabase.close();
}
//修改方法
public void update(Note note)
{
SQLiteDatabase sqLiteDatabase= db.getWritableDatabase();
ContentValues contentValues=new ContentValues();
//这里只修改内容,不修改日期
contentValues.put("info",note.getInfo());
sqLiteDatabase.update("note",contentValues,"id=?",new String[]{String.valueOf(note.getId())});
sqLiteDatabase.close();
}
//查询所有方法
public ArrayList<Note> selectByAll() {
ArrayList<Note> temp=new ArrayList();
SQLiteDatabase sqLiteDatabase = db.getWritableDatabase();
//使用SQLiteDatabase对象的query方法获取Cursor对象
Cursor cursor = sqLiteDatabase.query(true, "note", new String[]{"id,info,st"}, null, null, null, null, "id desc", null);
while (cursor.moveToNext()) {
Note note = new Note();
note.setId(cursor.getInt(0));
note.setInfo(cursor.getString(1));
note.setSt(cursor.getString(2));
temp.add(note);
}
sqLiteDatabase.close();
return temp;
}
//按照ID查询方法
public Note selectById(int id)
{
Note temp=new Note();
SQLiteDatabase sqLiteDatabase = db.getWritableDatabase();
Cursor cursor = sqLiteDatabase.query(true, "note", new String[]{"id,info,st"}, "id=?",new String[]{String.valueOf(id)}, null, null, "id desc", null);
while (cursor.moveToNext()) {
temp.setId(cursor.getInt(0));
temp.setInfo(cursor.getString(1));
temp.setSt(cursor.getString(2));
}
sqLiteDatabase.close();
return temp;
}
}