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  版权所有:iceboard.yang@gmail.com  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  版权所有:iceboard.yang@gmail.com  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  版权所有:iceboard.yang@gmail.com  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  版权所有:iceboard.yang@gmail.com  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  版权所有:iceboard.yang@gmail.com  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  版权所有:iceboard.yang@gmail.com  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  版权所有:iceboard.yang@gmail.com  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  版权所有:iceboard.yang@gmail.com  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  版权所有:iceboard.yang@gmail.com  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;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值