Android SQLite数据库增删改查实现代码及电脑查看SQLite数据库的方法

概述

SQLite具有轻量级、独立、易于维护等优点,支持绝大部分SQL语法,是Android编程中用于数据存储的常用方式。本文列举了增、删、改等常见操作。

实例化SQLiteDatabase

首先需要实例化一个SQLiteDatabase,然后再进行其他操作。实例化代码如下:

private SQLiteDatabase mDbDialog;

然后在主函数中令其指向特定的数据库;

mDbDialog = openOrCreateDatabase("GIMChat.db", Context.MODE_PRIVATE, null);

注意在所有操作(增删改查等)完成后要关闭数据库:

mDbExistDialog.close();

增加记录

话不多说先上代码:

mDbDialog.execSQL("CREATE TABLE IF NOT EXISTS dialog (_id INTEGER PRIMARY KEY AUTOINCREMENT, username VARCHAR, friendname VARCHAR, mecessage VARCHAR, ismesend SMALLINT)");
mDbDialog.execSQL("INSERT INTO dialog VALUES (NULL, ?, ?, ?, ?)",new Object[]{
    
    LoginActivity.Username, friendname, list.get(i).getBody(), 1});

注:
1.其中第一句代码的作用是:如果数据库中存在该表格,则向表格中增加一条记录,反之则先创建一个表格;
2.在插入记录时,要注意每一个字段的数据类型要与第一句中定义的数据类型一致。

删除记录

mDbChat.execSQL("DELETE FROM dialog WHERE friendname = ?", new String[]{
    
    ChatLists.get(position).getFriendname()});

其中dialog是要进行操作的表格的名称,friendname是表格中的一个字段(即删除记录的依据)。

查询记录

这里以遍历查询数据库表格中的所有记录为例(如检索聊天记录)。
首先需要实例化一个数据库指针:

private Cursor ExistDialog_cursor;

然后在主函数中使用该指针:

mDbExistDialog = openOrCreateDatabase("GIMChat.db", Context.MODE_PRIVATE, null);
        mDbExistDialog.execSQL("CREATE TABLE IF NOT EXISTS dialog (_id INTEGER PRIMARY KEY AUTOINCREMENT, username VARCHAR, friendname VARCHAR, mecessage VARCHAR, ismesend SMALLINT)");
        ExistDialog_cursor = mDbExistDialog.rawQuery("SELECT * FROM dialog WHERE username == ?", new String[]{
    
    LoginActivity.Username});

通过调用“.moveToNext(
)”方法,该指针可以实现对所有符合检索条件的记录的遍历。以恢复聊天记录为例,将聊天记录存储在手机本地,当用户点击聊天框时,可以通过“Friendname”及“Minename”字段的检索,实现对应聊天记录的恢复:

while (ExistDialog_cursor.moveToNext()){
    
    
                dialog.setUsername(ExistDialog_cursor.getString(ExistDialog_cursor.getColumnIndex("username")));
                dialog.setFriendname(ExistDialog_cursor.getString(ExistDialog_cursor.getColumnIndex("friendname")));
                dialog.setMecessage(ExistDialog_cursor.getString(ExistDialog_cursor.getColumnIndex("mecessage")));
                dialog.setisMeeSend(ExistDialog_cursor.getInt(ExistDialog_cursor.getColumnIndex("ismesend")));
                if (dialog.getUsername().equals(LoginActivity.Username)){
    
    
                    if (dialog.getFriendname().equals(ChatActivity.exist_friendname) ||dialog.getFriendname().equals(ChatActivity.exist_friendname+"@47.96.151.84")){
    
    
                        if (dialog.getisMesend() == 0){
    
    
                            ExistDialogManage(false, true, dialog.getMecessage(), ChatActivity.exist_friendname);
                        }else {
    
    
                            ExistDialogManage(false, false, dialog.getMecessage(), ChatActivity.exist_friendname);
                        }
                    }
                }
        }

注意所有操作做完后要关闭该指针:

ExistDialog_cursor.close();

电脑查看SQLite数据库

在实际开发过程中往往需要查看数据库的内容,以进行一些Bug的排除等操作。笔者个人推荐一个个人觉得很好用的工具:SQLite Studio。该软件是一个开源软件,能在电脑端查看Android设备中的SQLite数据库。
——————————————————————————
最后贴一下我的个人公众号:微信搜索“茶迁”或扫描下图。平时会更新一些编程相关的文章,欢迎大家关注~
茶迁

猜你喜欢

转载自blog.csdn.net/weixin_46269688/article/details/110368189