Android数据库SQLite-初识
来源:互联网 发布:实木浴室柜怎么样知乎 编辑:程序博客网 时间:2024/06/13 01:36
SQLite,是一款轻型的关系型数据库.,包含在很小的C库中。
遵守ACID数据库事务四要素:
1、原子性。
事务的原子性是指事务是一个不可分割的工作单位,这组操作要么全部发生,否则全部不发生。
2、一致性。
在事务开始以前,被操作的数据的完整性处于一致性的状态,事务结束后,被操作的数据的完整性也必须处于一致性状态。
3、隔离性。
事务隔离性要求系统必须保证事务不受其他并发执行的事务的影响。
4、持久性。
一个事务一旦成功提交,它对数据库的改变必须是永久的,即便是数据库发生故障也应该不回对其产生任何影响。
SQLite在Android中的使用:
怎么获取数据库对象?
一、基于Context上下文对象来获取数据库对象。
二、直接创建数据库对象SQLiteDatabase。
三、基于SQLiteOpenHelper数据库操作帮助类来获取数据库对象。
其实三种方式最终目的都是拿到数据库的操作对象SQLiteDatabase来实现数据的增删改查操作,而且三种方式最终都是调用SQLiteDatabase.openDatabase方法来获取数据库对象。
第一种:
//数据库名 private static final String DATA_BASE_NAME = "test.db"; //表名 private static final String TABLE_NAME = "person"; //列名 private static final String TABLE_COLUMN = "name"; //展示的分隔符 private static final String ITEM_SPLIT = "、"; private void getDB() { SQLiteDatabase mDataBase = openOrCreateDatabase(DATA_BASE_NAME, MODE_PRIVATE, null); }
第二种:
SQLiteDatabase mDatabase = SQLiteDatabase.openDatabase(DATA_BASE_NAME, null, MODE_PRIVATE);
SQLiteOpenHelper sqLiteOpenHelper = new SQLiteOpenHelper(context, name, null, 1) { @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } };SQLiteDatabase mDataBase= sqLiteOpenHelper.getWritableDatabase();
通过上面三种方式获取到数据库对象以后,通过调用SQLiteDatabase提供的insert、delete、update、query等方法就能操作数据库了。而且提供了执行数据库操作语句的方法execSQL来操作数据库。
怎么操作数据库对象?
一、通过execSQL来操作数据库:
private void sqlOperation(String args) { //增加一条数据 mDataBase.execSQL("INSERT INTO "+ TABLE_NAME +" VALUES (NULL, ?)", new Object[]{args}); //删除一条数据 mDataBase.execSQL("DELETE FROM " + TABLE_NAME + " WHERE " + TABLE_COLUMN + "='" + args + "'"); //更新数据 mDataBase.execSQL("UPDATE " + TABLE_NAME + " set " + TABLE_COLUMN + " ='" + args + "'" + " WHERE " + TABLE_COLUMN + " ='" + args + "'"); //查询数据 Cursor cursor = mDataBase.rawQuery("SELECT * FROM " + TABLE_NAME, new String[]{}); int index = 0; while (cursor.moveToNext()){ index += 1; HashMap<String, Object> map = new HashMap<>(); map.put(TABLE_COLUMN, index + ITEM_SPLIT + cursor.getString(cursor.getColumnIndex(TABLE_COLUMN))); mListItem.add(map); } cursor.close();}
二、通过数据库对象提供的方法直接操作:
private void sqlOpration(String args){ //增加一条数据 ContentValues contentValues = new ContentValues(); contentValues.put(TABLE_COLUMN, args); mDataBase.insert(TABLE_NAME, null, contentValues); //删除一条数据 mDataBase.delete(TABLE_NAME, TABLE_COLUMN + " == ?", new String[]{args}); //更新数据 mDataBase.update(TABLE_NAME, contentValues, TABLE_COLUMN + " == ?", new String[]{}); }
虽然操作数据库的方式不同,但是殊途同归最终调用的都是SQLiteStatement获取的SQLiteSession并添加到SQLiteConnectionPool中来执行操作。
有没有简单易用的?
SQLiteOpenHelper帮助类提供了一些简单高效的方式来帮助我们操作数据库,上面提到了通过继承这个帮助类来获取数据库对象,同时也提供了一些回调方法比如onCreat(数据库第一次被创建的时候)、onUpgrade(数据库升级的时候)、onDowngrade(数据库降级)、onOpen(数据库已经被打开)、onConfigure(数据库的配置信息,比如用来确定数据库的配置信息是否正确之类的)来监听数据库的一些状态。
- Android数据库SQLite-初识
- 初识Sqlite数据库
- Android基础-初识SQLite第2章SQLite数据库的操作 2-1数据库的创建
- Android基础-初识SQLite 1-1 sqlite数据库 以及 SQL语法 介绍
- Android数据库 SQLite数据库
- SQLite初识(一)创建数据库
- SQLite初识(二)数据库查询
- SQLite初识(三)数据库升级
- SQLite初识(四)数据库插入数据
- SQLite初识(五)修改数据库数据
- SQLite初识(六)删除数据库数据
- SQLite初识(八)数据库--查询数据
- Android系统数据库初识
- Android 初识数据库存储
- Android 之 SQLite 数据库
- Android 使用SQLite数据库
- android SQLite数据库应用
- Android 使用SQLite数据库
- MIPS的32个通用寄存器
- UVa 1588 - Kickdown
- (随记七)Android设计模式解析与实战_六种单例模式的实现方案的区别
- Selenium - IWebDriver.SwitchTo() frame 和 Window 的用法
- FCM算法原理及matlab实现
- Android数据库SQLite-初识
- 3、js插件---->jquery通知插件toastr的使用
- 学习计划!!!!!
- 《心术》——张宇
- 【MongoDb探究】02-mongodb下载安装和启动
- vim
- 关于
- ubuntu16.04+gtx1070/1060+cuda8.0+caffe安装、测试[亲测]
- 综合方法selenium整理