[Android] SQlite的使用

来源:互联网 发布:淘宝买铊的暗语 编辑:程序博客网 时间:2024/05/22 06:48

Android 中三种存储数据的方法

1.SharedPreferences

这种使用了存储轻量级的数据。

2.File

与 Java 的 I/O 流相似。

3.SQLite

SQLite是一款开源的、轻量级的、嵌入式的、关系型数据库。它在2000年由D. Richard Hipp发布,可以支援Java、Net、PHP、Ruby、Python、Perl、C等几乎所有的现代编程语言,支持Windows、Linux、Unix、Mac OS、Android、IOS等几乎所有的主流操作系统平台。

这里着重介绍一下 SQLite 的使用。

首先我们需要在项目中创建一个 SQLite

SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);

代码很简单,传入三个参数,第一个参数是数据库的名字,第二个是存储方式,私有,可读,可写等等。
第三个是工厂,这里传入 null 即可。

接下来执行 sql 语句,建表。

db.execSQL(    "create table if not exists usertb(_id integer primary key autoincrement,name text not null,age integer not null,sex text not null)");

DBOpenhelper openhelper = new DBOpenhelper(ThirdActivity.this, "stu.db");SQLiteDatabase db = openhelper.getWritableDatabase();

建表完成后,接着就是增删改查了。

增删改查之——增

db.execSQL("insert into usertb(name,sex,age)values('张三','男',23)");

ContentValues values = new ContentValues();values.put("name", "张三");values.put("sex", "男");values.put("age", "23");

这里便完成了数据库的增加,打卡 DDMS,貌似 API24 限制了文件的查看,我们可以继续使用 API23 的模拟器或者是真机。打开 data/data//databases,导出到桌面,用相关软件查看,发现已经增加成功了。

增删改查之——删

db.delete("usertb", "name like ?", new String[] {"%三%"});

删除名字中带三的人。

增删改查之——改

values.put("sex", "女");db.update("studb", values,"_id>?", new String[] {"0"});//将全部id大于0的改成女

增删改查之——查

创建一个游标来查询。判断游标不为空,则移动到下一个,读取数据。最后记得关闭游标。

Cursor cursor = db.rawQuery("select*from usertb", null);if (cursor != null) {  while (cursor.moveToNext()) {    Log.d("tag", "_id: " + cursor.getInt(cursor.getColumnIndex("_id")));    Log.d("tag", "name: " + cursor.getString(cursor.getColumnIndex("name")));    Log.d("tag", "age: " + cursor.getInt(cursor.getColumnIndex("age")));    Log.d("tag", "sex: " + cursor.getString(cursor.getColumnIndex("sex")));    Log.d("tag", "*****************************");  }  cursor.close();}

或者有条件查询(查询 id>0 的所有人)

Cursor cursor = db.query("studb", null, "_id>?", new String[] {"0"}, null, null, "name");if (cursor != null) {  //查询出所有的字段  String[] names = cursor.getColumnNames();  while (cursor.moveToNext()) {    for (String name : names        ) {      Log.d("tag",cursor.getString(cursor.getColumnIndex(name)));    }  }  cursor.close();

最后记得 db.close()

0 0
原创粉丝点击