SQlite數據庫(4)---DAO(data access object)數據訪問對象

SQlite數據庫(1)
SQlite數據庫(2)—-android 操作
SQlite數據庫(3)—API操作

實現步驟

1.實體類

2.實體類DAO

public class BookDao extends SQLiteOpenHelper{
//私有保護
private static SQLiteDatabase db;
//公有靜態方法獲取db
    public static SQLiteDatabase getInstance(Context context){
        if(db == null){
            db = new BookDao(context).getReadableDatabase();
        }
        return db;
    }

    private BookDao(Context context){
        super(context, Environment.getExternalStorageDirectory() + "/book.db",null,1);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {

    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

public Cursor addBook(Book book){
    String sql="insert into 1_tb (name,type) values(?,?)";
    db.execSQL(sql,new String[]{book.getName(),book.getType()});

}
public void getBook(String...strs){
    String sql="select * from 1_tb ";
    if(strs.length!=0){
        sql+="where" + strs[0] + "='" +strs[1] +"'";
    }
    Cursor c=db.rawQuery(sql,null);
    return c;
}

public void deleteBook(String...strs){
    String sql="delete from 1_tb where "+strs[0]+"='"+strs[1]+"'";
    db.execSQL(sql); 

}
public void updateBook(BOOK bk){
    String sql="update info 1_tb set name=?,type=?";
    db.execSQL(sql,new objedt[]{bk.getName(),bk.getType()}); 
}

3.調用代碼
第一種:對於可以實例化DAO類的獲取dao.方法名
第二種:類名.getInstance 類名.方法名 靜態方法

BookDao bd=new;
//查詢同刪除
String key="",value="";
if(mName.equals(""){
    key="name";
    value=mName;    
}
Cursor c;
if(key.equals("")){
    c=dao.getBook();
}else{
    c=dao.getBook(key,value);
}

用cursor 獲取 arraylist

ArrayList<Book> list=new ArrayList<>();
Cursor c = //調用上面的getBook方法獲得
while(c.moveToNext()){
    int id=c.getInt(0);
    String name=c.getString(1);
    String type=c.getString(2);
    Book book=new Book(id,name,type);
    list.add(book);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章