1、DBAdapter类:
1 package com.cnzcom.android.quickdial; 2 3 import android.content.ContentValues; 4 import android.content.Context; 5 import android.database.Cursor; 6 import android.database.SQLException; 7 import android.database.sqlite.SQLiteDatabase; 8 import android.database.sqlite.SQLiteOpenHelper; 9 import android.util.Log; 10 11 /** 12 * 13 * @author zhangjie 14 * 15 * 数据库相关操作的类 16 */ 17 public class DBAdapter { 18 /** 19 * 数据库名 20 */ 21 private static final String DATABASE_NAME = "quickdial.db"; 22 23 /** 24 * 数据表名 25 */ 26 private static final String DATABASE_TABLE = "quickdial"; 27 28 /** 29 * 数据库版本 30 */ 31 private static final int DATABASE_VERSION = 1; 32 33 /** 34 * key_id :主键 35 */ 36 @SuppressWarnings("unused") 37 private static final String KEY_ID = "key_id"; 38 39 /** 40 * position :位置信息,表示数据是第几项 41 */ 42 private static final String POSITION = "position"; 43 44 /** 45 * name :姓名 46 */ 47 private static final String NAME = "name"; 48 49 /** 50 * phone_number :电话号码 51 */ 52 private static final String PHONE_NUMBER = "phone_number"; 53 54 /** 55 * ip :是否ip播出 56 */ 57 private static final String IP = "ip"; 58 59 /** 60 * 61 */ 62 private static final String DATABASE_CREATE = 63 "create table quickdial (key_id INTEGER PRIMARY KEY, " 64 + "position INTEGER, " 65 + "name TEXT, " 66 + "phone_number TEXT, " 67 + "ip INTEGER" 68 + ");"; 69 70 /** 71 * 72 */ 73 private final Context context; 74 75 /** 76 * 77 */ 78 private DatabaseHelper DBHelper; 79 80 /** 81 * 82 */ 83 private SQLiteDatabase db; 84 85 public DBAdapter(Context ctx) { 86 context = ctx; 87 DBHelper = new DatabaseHelper(context); 88 89 90 } 91 92 private static class DatabaseHelper extends SQLiteOpenHelper { 93 public DatabaseHelper(Context context) { 94 super(context, DATABASE_NAME, null, DATABASE_VERSION); 95 } 96 97 @Override 98 public void onCreate(SQLiteDatabase db) { 99 // TODO Auto-generated method stub 100 db.execSQL(DATABASE_CREATE); 101 } 102 103 @Override 104 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 105 // TODO Auto-generated method stub 106 db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE); 107 onCreate(db); 108 } 109 110 } 111 112 /** 113 * 打开数据库 114 * @return 115 * @throws SQLException 116 */ 117 public SQLiteDatabase open() throws SQLException 118 { 119 db = DBHelper.getWritableDatabase(); 120 121 Cursor cursor = getAll(); 122 123 if(cursor.getCount() == 0) { 124 125 Log.e("数据库为空", "插入数据"); 126 /** 127 * 先使用假数据初始化数据库 128 */ 129 for(int i = 0; i < 10; i++) { 130 insert(i, "", "", 0); 131 } 132 } else { 133 Log.e("数据库不为空", "读取数据"); 134 } 135 cursor.close(); 136 137 return db; 138 } 139 140 /** 141 * 关闭数据库 142 */ 143 public void close() 144 { 145 DBHelper.close(); 146 } 147 148 /** 149 * 向数据库中插入数据 150 */ 151 152 public long insert(int position, String name, String phone_number, int ip) { 153 154 ContentValues initialValues = new ContentValues(); 155 initialValues.put(POSITION, position); 156 initialValues.put(NAME, name); 157 initialValues.put(PHONE_NUMBER, phone_number); 158 initialValues.put(IP, ip); 159 160 return db.insert(DATABASE_TABLE, null, initialValues); 161 } 162 163 /** 164 * 删除数据,其实不是真正意义上的删除,而是将name = ""、phone_number = ""、ip = 0 165 */ 166 public boolean delete(int position) { 167 168 ContentValues initialValues = new ContentValues(); 169 initialValues.put(POSITION, position); 170 initialValues.put(NAME, ""); 171 initialValues.put(PHONE_NUMBER, ""); 172 initialValues.put(IP, 0); 173 174 return db.update(DATABASE_TABLE, initialValues, POSITION + "=" + position, null) > 0; 175 176 // return db.delete(DATABASE_TABLE, POSITION + "=" + position, null) > 0; 177 } 178 179 /** 180 * 更改数据 181 */ 182 public boolean update(int position, String name, String phone_number, int ip) { 183 184 ContentValues initialValues = new ContentValues(); 185 //initialValues.put(POSITION, position); 186 initialValues.put(NAME, name); 187 initialValues.put(PHONE_NUMBER, phone_number); 188 initialValues.put(IP, ip); 189 190 return db.update(DATABASE_TABLE, initialValues, POSITION + "=" + position, null) > 0; 191 } 192 193 public Cursor getAll() { 194 195 Cursor cur = db.query(DATABASE_TABLE, 196 null, null, null, null, null, null); 197 return cur; 198 199 } 200 201 public Cursor get(long rowId) throws SQLException { 202 Cursor cur = db.query(true, DATABASE_TABLE, new String[] {POSITION, 203 NAME, 204 PHONE_NUMBER, 205 IP}, 206 207 POSITION + "=" + rowId, null, null, null, null, null); 208 209 if(cur != null) { 210 cur.moveToFirst(); 211 } 212 213 return cur; 214 } 215 216 } |
2、Activity中调用:
1 public DBAdapter m_DBAdapter; 2 3 m_DBAdapter = new DBAdapter(this); 4 m_DBAdapter.open(); |