1、DBAdapter类:  1 package com.cnzcom.android.quickdial;

 import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log; /**
*
* @author zhangjie
*
* 数据库相关操作的类
*/
public class DBAdapter {
/**
* 数据库名
*/
private static final String DATABASE_NAME = "quickdial.db"; /**
* 数据表名
*/
private static final String DATABASE_TABLE = "quickdial"; /**
* 数据库版本
*/
private static final int DATABASE_VERSION = 1; /**
* key_id :主键
*/
@SuppressWarnings("unused")
private static final String KEY_ID = "key_id"; /**
* position :位置信息,表示数据是第几项
*/
private static final String POSITION = "position"; /**
* name :姓名
*/
private static final String NAME = "name"; /**
* phone_number :电话号码
*/
private static final String PHONE_NUMBER = "phone_number"; /**
* ip :是否ip播出
*/
private static final String IP = "ip"; /**
*
*/
private static final String DATABASE_CREATE =
"create table quickdial (key_id INTEGER PRIMARY KEY, "
+ "position INTEGER, "
+ "name TEXT, "
+ "phone_number TEXT, "
+ "ip INTEGER"
+ ");"; /**
*
*/
private final Context context; /**
*
*/
private DatabaseHelper DBHelper; /**
*
*/
private SQLiteDatabase db; public DBAdapter(Context ctx) {
context = ctx;
DBHelper = new DatabaseHelper(context); } private static class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
} @Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
} } /**
* 打开数据库
* @return
* @throws SQLException
*/
public SQLiteDatabase open() throws SQLException
{
db = DBHelper.getWritableDatabase(); Cursor cursor = getAll(); if(cursor.getCount() == 0) { Log.e("数据库为空", "插入数据");
/**
* 先使用假数据初始化数据库
*/
for(int i = 0; i < 10; i++) {
insert(i, "", "", 0);
}
} else {
Log.e("数据库不为空", "读取数据");
}
cursor.close(); return db;
} /**
* 关闭数据库
*/
public void close()
{
DBHelper.close();
} /**
* 向数据库中插入数据
*/ public long insert(int position, String name, String phone_number, int ip) { ContentValues initialValues = new ContentValues();
initialValues.put(POSITION, position);
initialValues.put(NAME, name);
initialValues.put(PHONE_NUMBER, phone_number);
initialValues.put(IP, ip); return db.insert(DATABASE_TABLE, null, initialValues);
} /**
* 删除数据,其实不是真正意义上的删除,而是将name = ""、phone_number = ""、ip = 0
*/
public boolean delete(int position) { ContentValues initialValues = new ContentValues();
initialValues.put(POSITION, position);
initialValues.put(NAME, "");
initialValues.put(PHONE_NUMBER, "");
initialValues.put(IP, 0); return db.update(DATABASE_TABLE, initialValues, POSITION + "=" + position, null) > 0; // return db.delete(DATABASE_TABLE, POSITION + "=" + position, null) > 0;
} /**
* 更改数据
*/
public boolean update(int position, String name, String phone_number, int ip) { ContentValues initialValues = new ContentValues();
//initialValues.put(POSITION, position);
initialValues.put(NAME, name);
initialValues.put(PHONE_NUMBER, phone_number);
initialValues.put(IP, ip); return db.update(DATABASE_TABLE, initialValues, POSITION + "=" + position, null) > 0;
} public Cursor getAll() { Cursor cur = db.query(DATABASE_TABLE,
null, null, null, null, null, null);
return cur; } public Cursor get(long rowId) throws SQLException {
Cursor cur = db.query(true, DATABASE_TABLE, new String[] {POSITION,
NAME,
PHONE_NUMBER,
IP}, POSITION + "=" + rowId, null, null, null, null, null); if(cur != null) {
cur.moveToFirst();
} return cur;
} } 2、Activity中调用:1 public DBAdapter m_DBAdapter; m_DBAdapter = new DBAdapter(this);
m_DBAdapter.open();

文章出处

http://www.cnblogs.com/Jackeyzhang/archive/2011/06/02/2068459.html

最新文章

  1. MySQL下载、安装及启动
  2. ASDM through site to site VPN
  3. 【月末轻松篇】--- 那些奇葩的Bugs
  4. ASP.NET Web API默认支持的媒体类型(SupportedMediaTypes)
  5. 转:Python 的 Socket 编程教程
  6. Codeforces 450D Jzzhu and Cities [heap优化dij]
  7. .net转php laraval框架学习系列(三)项目实战---Route&amp;Controllers
  8. CoreGraphics 之CGAffineTransform仿射变换(3)
  9. eclipse 软件的背景颜色、字体设置
  10. Hope
  11. PTA——近似求PI
  12. pytest框架之fixture详细使用
  13. 031_keepalive+nginx保证nginx高可用
  14. MSVCP110.DLL没有被指定在WINDOWS上运行
  15. py3+urllib+re,轻轻松松爬取双色球最近100期中奖号码
  16. [LeetCode] 99. Recover Binary Search Tree(复原BST) ☆☆☆☆☆
  17. Spring batch的学习
  18. Spring的属性注入, byName和byType还有注入List属性
  19. MySQL主从常见的架构
  20. tornado 重定向404

热门文章

  1. ARM官方《CMSIS-RTOS教程》之线程Threads
  2. XML和Schema命名空间详解
  3. 《AndroidStudio每日一贴》11. 重构之提炼为常量
  4. 在Unix上用 BIND建立名称服务器(naem server)
  5. 85.explicit作用
  6. display,visibility,meta知识
  7. Supervisor 的安装与配置教程
  8. Django_模型操作
  9. 在AT151上面测试串口通讯
  10. 【Uva 1252】Twenty Questions