Android数据库SQLite的读写

本文介绍了如何使用adb shell命令行工具操作Android设备上的SQLite数据库,包括进入数据库路径、执行sqlite3命令以及查看数据库版本等。同时,讲解了在代码中进行数据库的增删改查操作,强调了SQLiteOpenHelper的使用,以及SQLiteDatabase的query、insert、delete和update方法。还提到了在多线程环境下使用synchronized关键字保证数据库操作的线程安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果有权限的话,adb shell命令sqlite3可以操作数据库:数据库存放在app的目录里面,要先进入/data,或者/data/data,查找app的目录,再进入databases目录,然后再执行:

sqlite3    数据库文件名

sqlite> .mode colum  修改一下查询结果的显示模式
sqlite> .header on    这条命令是打开首行显示字段名的功能

sqlite命令下执行.dbinfo,其中user version这一项是这个db的版本号(由程序员写入)。

剩下的,就看你对sql语言的掌握了。

        (顺便学到的知识点:多线程中,在方法声明前面加synchronized关键字可以为方法上锁,让同一时间只有一个线程单独访问该方法。很多sqlite相关的方法都加入了这个。)

      如果是在代码中要实现数据库的增删改查,则要:

1、创建一个类继承SQLiteOpenHelper        

 public class SQLiteHelper extends SQLiteOpenHelper {
//此类的作用:1、使用getReadableDatabase()和getWritableDatabase()获得SQLiteDatabase对象;
//2、提供了onCreate()和onUpgrade(),允许我么你在创建和升级数据库时执行一些我们自定义的操作。
   public DBHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
      super(context, name, factory, version);
   }

@Override //回调函数,在第一次得到SQLiteDatabase对象的时候会执行这个方法
public void onCreate(SQLiteDatabase db) {
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}

2、在主函数中创建一个SQLiteHelper对象:

SQLiteHelper sqliteOpenHelper = new SQLiteHelper(this.getContext(),"einkPW.db",null,4);

3、用helper获取到DB的对象:

SQLiteDatabase db = sqliteOpenHelper.getReadableDatabase();

4、然后用它就可以执行sql语句了,比如:
db.execSQL("select bgPattern from table_page where id="+pageId);
不好意思,写错了,execSQL方法不能执行select或者任何要获取数据的sql语句,和JDBC比起来,Android的数据库操作真是太傻冒了。

查询语句要用query方法。相应的还有insert、delete、update()方法。

关于SQLiteDatabase所提供的方法,可以看API文档:https://developer.android.com/reference/android/database/sqlite/SQLiteDatabase

获取query的查询结果要用指针:

Cursor cursor=db.query(………………)

结果集用循环来遍历:

While(cursor.moveToNext()){

      String name= cursor.getString(…………);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值