android数据库存储-sqllite
16lz
2021-01-24
SQLite简介:
SQLite数据库存储是android系统提供的数据存储方式之一,
SQLite是专门为嵌入式设备设计的一款轻量级数据库,SQLite占用资源低,SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB;
遵循数据库的ACID事务 SQLite是android系统自带;
不需要单独安装,不需要用户名密码就可以使用
SQLiteDatabase的介绍
Android提供了创建和是用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在 Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。下面是SQLiteDatabase的常用 方法。
SQLiteDatabase的常用方法
方法名称 | 方法表示含义 |
openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory) | 打开或创建数据库 |
insert(String table,String nullColumnHack,ContentValues values) | 插入一条记录 |
delete(String table,String whereClause,String[] whereArgs) | 删除一条记录 |
query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy) | 查询一条记录 |
update(String table,ContentValues values,String whereClause,String[] whereArgs) | 修改记录 |
execSQL(String sql) | 执行一条SQL语句 |
close() | 关闭数据库 |
用法:
s1.新建类继承SQLiteOpenHelper新建一个类(类名自定义),继承SQLiteOpenHelper,并实现构造方法、重写oncreate和onupgrade方法。
import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;/** * Created by hufhu on 2018/3/9. */public class DBHelper extends SQLiteOpenHelper { private static String name = "test.db"; private static int version = 1; private static String TABLE_TEST_SQL = "create table book(id integer primary key autoincrement," + "name varchar(32),price real)"; public DBHelper(Context context) { super(context, name, null, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(TABLE_TEST_SQL); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}
s2.创建SQLiteDatabase对象
1、只读模式
?1 | SQLiteDatabase sqldb = dbhelper.getReadableDatabase(); |
2、读写模式
?1 | SQLiteDatabase sqldb = dbhelper.getWritableDatabase(); |
s3.通过实现增删改查操作
private SQLiteDatabase dataHelper = null; /** * 数据库追加 * @param view */ public void addDb(View view) { if(null == dataHelper){ DBHelper helper = new DBHelper(MainActivity.this); dataHelper = helper.getWritableDatabase(); } dataHelper.execSQL("insert into book(name,price) values(\"新华词典\",20.12)"); } /** * 数据库删除 * @param view */ public void delDb(View view) { if(null == dataHelper){ DBHelper helper = new DBHelper(MainActivity.this); dataHelper = helper.getWritableDatabase(); } dataHelper.execSQL("delete from book"); } /** * 数据库修改 * @param view */ public void updDb(View view) { if(null == dataHelper){ DBHelper helper = new DBHelper(MainActivity.this); dataHelper = helper.getWritableDatabase(); } } /** * 数据库查询 * @param view */ public void queryDb(View view) { if(null == dataHelper){ DBHelper helper = new DBHelper(MainActivity.this); dataHelper = helper.getWritableDatabase(); } Cursor cursor = dataHelper.rawQuery("select * from book",null); while (cursor.moveToNext()){ Integer id = cursor.getInt(0); String name = cursor.getString(cursor.getColumnIndex("name")); Double price = cursor.getDouble(cursor.getColumnIndex("price")); Log.i("db:","---start----"); Log.i("db:","id:"+id+"name:" + name + " price:" + price); Log.i("db:","---end----"); } }
更多相关文章
- android消息机制(handler运行机制)解析
- android实现gif图与文字混排
- android进行异步更新UI的四种方式
- android 本地数据库
- android Handler,Looper,Message三者关系
- Android(安卓)MediaPlayer使用注意
- Fragment的添加方法总结
- Android(安卓)Service的onRebind方法调用时机
- Android中使用事件总线的优缺点