首页 > 代码库 > 数据库知识SQLite
数据库知识SQLite
MySQLiteOpenHelper -> SQLiteDatabase
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class AppLockOpenHelper extends SQLiteOpenHelper { //设置数据库的名称版本号 public AppLockOpenHelper(Context context) { super(context, AppLockConstants.DB_NAME, null, AppLockConstants.DB_VERSION); }
//创建数据库表结构操作 @Override public void onCreate(SQLiteDatabase db) { db.execSQL(AppLockConstants.CREATE_TABLE); }
public static final String CREATE_TABLE = "create table " + TABLE_NAME
+ "(" + ID + " integer primary key autoincrement," + PACKAGENAME
+ " varchar(100))";
//当数据库版本发生变化的时候
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
public class AppLockDao { private AppLockOpenHelper openHelper; private Context mContext; public AppLockDao(Context context) { openHelper = new AppLockOpenHelper(context); this.mContext = context; } public boolean add(String packageName) { SQLiteDatabase database = openHelper.getWritableDatabase(); ContentValues values = new ContentValues(); // 参数1:表中的字段的名称 // 参数2 : 字段对应的值 values.put(AppLockConstants.PACKAGENAME, packageName); // 参数1:表名 // 参数2:设置添加数据的时候,可以添加null数据 // 参数3:添加的数据 long insert = database .insert(AppLockConstants.TABLE_NAME, null, values); // 通知内容观察者,数据库更新了 ContentResolver contentResolver = mContext.getContentResolver(); // 通知内容观察者数据发生变化了 Uri uri = Uri.parse("content://com.z.mobliesafe.unlock"); // 参数1:uri地址 // 参数2:通知哪个内容观察者,如果是null,表示通知所有通过uri注册的内容观察者 contentResolver.notifyChange(uri, null); // 判断是否添加成功 return insert != -1; } public boolean delete(String packageName) { SQLiteDatabase database = openHelper.getWritableDatabase(); // 参数2:查询条件 where id=... // 参数3:查询条件的参数 int delete = database.delete(AppLockConstants.TABLE_NAME, AppLockConstants.PACKAGENAME + "=?", new String[] { packageName }); // 通知内容观察者,数据库更新了 ContentResolver contentResolver = mContext.getContentResolver(); // 通知内容观察者数据发生变化了 Uri uri = Uri.parse("content://com.z.mobliesafe.unlock"); // 参数1:uri地址 // 参数2:通知哪个内容观察者,如果是null,表示通知所有通过uri注册的内容观察者 contentResolver.notifyChange(uri, null); // 判断是否删除成功 return delete != 0; } // 查询单个数据 /** * 查询应用程序的包名是否在数据库,判断应用程序是否加锁的应用程序 true:加锁,false:解锁(没有加锁) 2016-11-21 * 下午3:09:23 */ public boolean queryOne(String packageName) { boolean isHave = false; SQLiteDatabase database = openHelper.getReadableDatabase(); // 参数2:设置查询哪些数据 // 参数3,4 :查询条件和查询条件的参数 // 参数5:分组 // 参数6:去重 // 参数7 : 排序 Cursor cursor = database.query(AppLockConstants.TABLE_NAME, new String[] { AppLockConstants.PACKAGENAME }, AppLockConstants.PACKAGENAME + "=?", new String[] { packageName }, null, null, null); // 如果查询的数据只有一个,不用使用while直接使用if就可以 if (cursor.moveToNext()) { // 因为只需要知道应用程序的包名是否在数据库中就可以了,不需要使用查询出来的数据 isHave = true; } // 关闭数据库 cursor.close(); database.close(); return isHave; } // 查询单个数据 /** * 查询应用程序的包名是否在数据库,判断应用程序是否加锁的应用程序 true:加锁,false:解锁(没有加锁) 2016-11-21 * 下午3:09:23 */ public boolean queryOne(String packageName) { boolean isHave = false; SQLiteDatabase database = openHelper.getReadableDatabase(); // 参数2:设置查询哪些数据 // 参数3,4 :查询条件和查询条件的参数 // 参数5:分组 // 参数6:去重 // 参数7 : 排序 Cursor cursor = database.query(AppLockConstants.TABLE_NAME, new String[] { AppLockConstants.PACKAGENAME }, AppLockConstants.PACKAGENAME + "=?", new String[] { packageName }, null, null, null); // 如果查询的数据只有一个,不用使用while直接使用if就可以 if (cursor.moveToNext()) { // 因为只需要知道应用程序的包名是否在数据库中就可以了,不需要使用查询出来的数据 isHave = true; } // 关闭数据库 cursor.close(); database.close(); return isHave; } // 查询全部数据 /** * 查询全部加锁的应用程序 * * 2016-11-21 下午3:19:38 */ public List<String> queryAll() { SystemClock.sleep(2000); List<String> list = new ArrayList<String>(); SQLiteDatabase database = openHelper.getReadableDatabase(); // 参数2:设置查询哪些数据 // 参数3,4 :查询条件和查询条件的参数 // 参数5:分组 // 参数6:去重 // 参数7 : 排序 Cursor cursor = database.query(AppLockConstants.TABLE_NAME, new String[] { AppLockConstants.PACKAGENAME }, null, null, null, null, null); while (cursor.moveToNext()) { String packageName = cursor.getString(0); // 为了方便listview显示数据,将bean类保存到集合中 list.add(packageName); } // 关闭数据库 cursor.close(); database.close(); return list; }
数据库知识SQLite
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。