1. 程式人生 > >android資料庫操作(二) 某實體類的DAO操作類

android資料庫操作(二) 某實體類的DAO操作類

package com.iceboard.tccme.dao;


import java.util.ArrayList;
import java.util.List;


import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;


import com.iceboard.tccme.DBHelper.IceDatabaseHelper;
import com.iceboard.tccme.model.AdTable; 


public class AdTableDao {


private IceDatabaseHelper helper;

private String TABLE_NAME="adtable";



/**
* 裝置資訊的構造模型,例項化時,會檢查表是否存在,若不存在,則建立該表
* @version 1.0
* @author  版權所有:
[email protected]
 create by 2013-3-29
* @param context 上下文
* **/
public  AdTableDao(Context context) {
// TODO Auto-generated method stub
//例項化資料庫物件,
helper = new IceDatabaseHelper(context); 

//初始化時,可以插入一些資料 ,可以先關掉
//int iCount = queryCount();
//if (iCount<1) {
//ContentValues cv = new ContentValues();
//cv.put("username", "admin");
//cv.put("password", "123456");
//insert(cv);
//}
//
}


/**
* 插入裝置基本資訊物件
* @version 1.0
* @author  版權所有:
[email protected]
 create by 2013-3-29
* @param m 裝置實體
* */
public  void insert(AdTable e){
//開啟資料庫
SQLiteDatabase db = helper.getWritableDatabase();
//執行SQL。替換佔位符
db.execSQL("insert into adtable(_id,channel_id,fieldid,isdownload)"+
" VALUES (?,?,?,?) ",new Object[]{e.get_id(),e.getChannel_id(),e.getFieldid(),e.getIsdownload()});

//釋放資源
db.close(); 
}


/**
* 插入裝置資訊物件,並返回插入的行號
* @version 1.0
* @author  版權所有:
[email protected]
 create by 2013-3-29
* @param cv 包括有裝置實體型別的物件;
* */
public  Long insert(ContentValues cv){
//開啟資料庫
SQLiteDatabase db = helper.getWritableDatabase();
//執行SQL。替換佔位符
Long i = db.insert(TABLE_NAME, null, cv); 
db.close();
return i;
}


/**
* 刪除資料指定ID的記錄
* @version 1.0
* @author  版權所有:[email protected]  create by 2013-3-29
* @param id 要刪除的資料的ID
* */
public  void delete(int id){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("DELETE FROM adtable  WHERE _id = ?",new Object[]{id});
db.close();
}

/**
* 刪除所有資料資料
* @version 1.0
* @author  版權所有:[email protected]  create by 2013-3-29 
* */
public  void deleteAll(){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("DELETE FROM  " + TABLE_NAME);
db.close();
}


/**
* 惠新資料庫 根據ID更新資料;
* @version 1.0
* @author  版權所有:[email protected]  create by 2013-3-29
* @param m  裝置實體
* @param id 要惠新的ID記錄* 
* */
public  void update(AdTable e,int id){
SQLiteDatabase db = helper.getWritableDatabase(); 
db.execSQL("update adtable set channel_id=?,fieldid=?,isdownload=?where _id=?"
,new Object[]{ e.getChannel_id(),e.getFieldid(),e.getIsdownload(),id});
db.close();
}
/**
* 更新資料庫 根據ID更新資料;
* @param FieldsAndValues 在前端拼裝好的更新欄位值
* @param id  要惠新的記錄記錄;
* */
public  void update(String  FieldsAndValues,int id){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("update adtable set ? where _id=?",new Object[]{FieldsAndValues,id});
db.close();
}

/**
* 更新資料庫 根據ID更新資料;
* @param FieldsAndValues 在前端拼裝好的更新欄位值
* @param id  要惠新的記錄記錄;
* */
public  void update(String  FieldsAndValues,String condition){
SQLiteDatabase db = helper.getWritableDatabase();
String sql = " update adtable set "+FieldsAndValues+" where 1=1 "+condition;
Log.d("更新通知公告", sql);
db.execSQL(sql);
db.close();
}
/**
* 查詢資料庫,根據指定的ID值返回一個資訊實體 
* @version 1.0
* @author  版權所有:[email protected]  create by 2013-3-29
* @param id ID,條件ID
* */
public AdTable query(int id){
SQLiteDatabase db = helper.getReadableDatabase();
//執行查詢,得到一個Cursor,類似資料表;
Cursor c = db.rawQuery("SELECT * FROM adtable WHERE _id=?", new String[] { String.valueOf(id) });   
AdTable e  = new AdTable();
while (c.moveToNext()) {

e.set_id(c.getInt(c.getColumnIndex("_id")));
e.setChannel_id(c.getInt(c.getColumnIndex("channel_id")));
e.setFieldid(c.getString(c.getColumnIndex("fieldid")));
e.setIsdownload(c.getInt(c.getColumnIndex("isdownload"))); 
 
}
c.close();
db.close();
return e;
}



/**
* 返回記錄總條數;
* @version 1.0
* @author  版權所有:[email protected]  create by 2013-3-29
* */
public int queryCount(){
SQLiteDatabase db = helper.getReadableDatabase();   
Cursor c = db.rawQuery("SELECT COUNT(*) FROM adtable", null);   
c.moveToNext();   
int count =c.getInt(0);    
c.close();   
db.close();
return count;
}


/**
* 自定義查詢條件,並返回Cursor物件
* @version 1.0
* @author  版權所有:[email protected]  create by 2013-3-29
* @param condition 拼裝的條件字串
* */
public List<AdTable> select(String condiction){

SQLiteDatabase db = helper.getReadableDatabase();
String strSql = "select * from adtable where 1=1 "+condiction; 
//Log.d("拼裝的SQL", strSql);
List<AdTable> adtable = new ArrayList<AdTable>();
Cursor c  = db.rawQuery(strSql, null);
while (c.moveToNext()) {


AdTable e = new AdTable();
 
e.set_id(c.getInt(c.getColumnIndex("_id")));
e.setChannel_id(c.getInt(c.getColumnIndex("channel_id")));
e.setFieldid(c.getString(c.getColumnIndex("fieldid")));
e.setIsdownload(c.getInt(c.getColumnIndex("isdownload")));  

adtable.add(e);
}
db.close();
return adtable;
}

}

相關推薦

android資料庫操作 實體DAO操作

package com.iceboard.tccme.dao; import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.c

Android 資料庫綜述 程式計算器與訊號量來處理多執行緒併發問題

Android 資料庫綜述(二) 程式計算器與訊號量來處理多執行緒併發問題 多執行緒操作資料庫,為處理併發問題,大家第一想到的是加鎖操作 ,SQLite是檔案級別的鎖.SQLite3對於併發的處理機制是允許同一個程序的多個執行緒同時讀取一個數據庫,但是任何時刻只允許一個執行緒/

Android入門之文件系統操作文件操作相關指令

-h tools strong abc his art 為什麽 重命名 path (一)獲取總根 [java] view plain copy File[] fileList=File.listRoots(); //返回fileList.length為1 /

MySQL資料庫操作——DQL

DQL 關鍵字:select、from、where、group by、having、roder by 基本查詢   查詢所有:select * from 表名; select * from t_stu

Android 資料庫綜述 資料庫片的升級與資料的遷移操作

Android 資料庫綜述(一) 資料庫片的升級與資料的遷移操作 SQLiteOpenHelper 是 Android平臺提供給我們一個數據庫輔助類來建立或開啟資料庫 onCreate(SQLiteDatabase db) : 當資料庫被首次建立時執行該方法,一般將建立

MYSQL資料庫,資料表簡單操作

資料型別 整形 TINTINT 1bt SMALLINT 2bt MEDIUMINT 3bt INT 4bt BIGINT 8bt 浮點型 FLOAT(8,2) 總共8位2位小數 4bt DOUBLE 8bt 字元型 CHAR固定位數空格

資料庫實踐操作--資料庫遷移方案

例如:開發好的銀行系統進行遷移 介紹四種方法 1>分離附加法(常當前資料庫中分離) 前提:該資料庫不處於被訪問狀態 1>開啟要分離的資料庫檔案位置 右擊資料庫屬性–檔案–複製路徑–win+R開啟路徑 注意:開啟這一

宅的Android學習筆記——圖片三級快取

圖片三級快取的重要性  很多時候我們都需要從網路上下載圖片,如果在圖片很多的情況下,每次啟動app都要從網上下載,就會造成流量的浪費,影響使用者的體驗。因此,要利用快取來避免圖片的重複載入。 圖片快取方式  所謂三級快取,即: 網路快取 記憶體快取

2014-10-27Android學習------SQLite資料庫操作-----資料庫的建立--SQLiteHelper extends SQLiteOpenHelper

上篇有篇文章講了資料庫的操作  條件是:資料庫已經建好的了,我們只需要從裡面獲取資料(查詢)就可以了, 現在我們來看看第二種資料庫的操作: class SQLiteHelper extends SQLiteOpenHelper 封裝一個繼承SQLiteOpenHelpe

MySQL資料庫操作 ----索引的操作

       資料庫物件索引是一種有效組合資料的方式,通過索引物件,可以快速查詢到資料物件表中的特定記錄,是一種提高效能的常用方式。        索引是建立子啊資料庫表物件上,由表中的一個欄位或多個欄位生成的鍵組成,這些鍵儲存在資料結構(B樹或者雜湊表中),

adb命令詳解——手機缺失sqlite3時操作資料庫的多種解決方案

在android應用開發無處不在SQLite資料庫的身影。那麼在開發中怎麼使用adb命令操作資料庫的功能呢?下面我們將完整的介紹與資料庫操作相關的命令集及當手機缺少sqlite3的時候的多種解決方案。1.當手機缺失sqlite3時,如何操作資料庫先來看看手機缺失sqlite3

android kotlin與Java互操作Java 中呼叫 Kotlin

靜態欄位 在命名物件或伴生物件中宣告的 Kotlin 屬性會在該命名物件或包含伴生物件的類中 具有靜態幕後欄位。 通常這些欄位是私有的,但可以通過以下方式之一暴露出來: @JvmField

資料庫基本操作 DML語句:對資料庫表記錄的操作

以下語句要注意逗號,分號的中英文,不要直接複製 插入記錄 mysql>insert into emp(age1,ename,birth,hiredate,sal,depton)valu

RxJava 詳解——簡潔的異步操作

i++ 只有一個 tco 多個 etc 隊列 技術分享 () 而在 上次說的兩個例子,事件的發出和消費都是在同一個線程的。如果只用上面的方法,實現出來的只是一個同步的觀察者模式。觀察者模式本身的目的就是異步機制,因此異步對於 RxJava 是至關重要的。而要實現異步,則需要

android事件分發

sim tdi p s oat front rac ram addclass framework 非常早之前寫過一篇android事件分發的博客,主要寫的是它是怎樣分發的,具體非常多原理的東西都沒有涉及到。今天就從源代碼看android怎樣控制它的分發機

OpenCV入門筆記 圖片的文件操作

strong asc nump str destroy type convert 代碼 creat 以下介紹一下重要的幾個,設計基本 圖片處理 的函數,依次來了解OpenCV的入門知識。具體的具體使用方法還是以官方的API【Official Tutori

Discuz!X3.1數據庫的操作

資源釋放 ech tro art www. 處理 類型 row limit 數據庫自定義query 方法名:BD::query() 參數解釋: $sql:自定義SQL語句 $arg:需要綁定的數據 $unbuffered:是否使用無緩存查詢 12345678910

文件操作

創建 nbsp pan spa read pen 強制 列表 color 1、f.tell()和f.seek(0): 1 f=open(‘my_heart_will_go_on‘,‘r‘,encoding=‘utf-8‘)#f 是文件句柄,默認是只讀模式r,w是寫模式—

Linux初級命令對於linux的初級操作

linux入門必看Linux初級命令(二)對於linux的初級操作1.touch -修改文件的時間戳記.change file timestamps.、意外功能:可以創建未擁有的文件。 常用選項: -c,--no-create:不創建任何文

selenium+python自動化測試對瀏覽器的簡單操作

cat quit 報錯 簡單 conn port ted href ide 1.最大化 maximize_window 1 # coding = utf-8 2 3 from selenium import webdriver 4 chromedriver =