android sqlite database is locked (code 5): , while compiling:....

在安卓开发中使用SQLite数据库时,复制网上例子反复运行出现“database is locked”异常。网上查询多是代码令人头晕,最终解决办法是执行SQL后关闭事务,再关闭数据库。

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

安卓开发时用到了sqlite数据库, 到网上复制了点例子,结果反复运行的时候出现异常:database is locked (code 5): , while compiling:....

到网上查都是一堆的代码,看着就头晕

最后解决:

执行sql后关闭事务,再关闭数据库即可。

部分代码:

    private ProfileDBHelper profileDBHelper;
    public ProfileDAO(Context context){
        this.context = context;
        profileDBHelper = new ProfileDBHelper(context);
    }

    public void save(String brand, String type){
        SQLiteDatabase db = profileDBHelper.getWritableDatabase();
        db.beginTransaction();
        String sql = "insert into " + ProfileDBHelper.TABLE_NAME + "(id, brand, type)" +
                " values(null, '" + brand + "','" + type + "')";
        db.execSQL(sql);
        db.setTransactionSuccessful();
        db.endTransaction();    //
        db.close();            //
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值