发布时间:2023-10-25
浏览次数:0
一、简介
相信没有人在接触之前会知道系统内置了一个数据库。 它是一个轻量级的关系数据库,运行速度非常快,占用资源很少。 它通常只需要几百KB的内存,因此特别适合在移动设备上使用。 它不仅支持标准的SQL语法,而且遵循数据库的ACID事务,因此只要您之前使用过其他关系数据库,就可以快速上手。 而且比一般的数据库简单很多。 甚至无需设置用户名和密码即可使用。 正是通过将这个极其强大的数据库嵌入到系统中,使得本地持久化功能有了质的飞跃。
我们以 Book Demo为例,介绍如何在代码中创建数据库和数据表,以及如何查看我们创建的数据库文件。
2.创建数据库
为了让我们更方便的管理数据库,特意提供了一个辅助类。 借助此类,可以非常简单地创建和升级数据库。 既然有可以直接使用的好东西,我们自然要尝试一下。 下面我就介绍一下基本用法。
首先,你需要知道它是一个抽象类,这意味着如果我们想要使用它,我们需要创建自己的辅助类来继承它。 有两个抽象方法:()和()。 我们必须在自己的辅助类中重写这两个方法,然后在这两个方法中分别实现创建和升级数据库的逻辑。 有两个非常重要的实例方法:()和()。 这两个方法都可以创建或打开一个现有的数据库(如果数据库已经存在则直接打开,否则创建一个新的数据库),并返回一个可以读写数据库的对象。 如下图所示,创建一个对象后,调用open方法会创建一个自己的辅助类的实例。 这时候调用它的两个实例方法就可以创建数据库了。
如下图所示,有两个构造函数可以重写。 一般可以使用参数较少的构造函数。 这个构造方法接收4个参数:第一个参数是,这个没什么好说的,就是要操作数据库; 第二个参数是数据库名称,这里指定的名称是创建数据库时使用的; 第三个参数 第一个参数允许我们在查询数据时返回一个自定义的。 一般可以传入null; 第四个参数代表当前数据库的版本号,可用于升级数据库。构建实例后,可以通过调用其()或()方法来创建数据库。 数据库文件将存储在/data/data/包名中
// 在内容下
。 此时()方法也会被执行,因此通常会在这里处理一些建表逻辑。 建表语句可以单独取出来定义为字符串。 之所以这样写,是因为建表语句非常简单。
3.查看数据库
我们仍然可以使用File来查看,但是这个工具只能看到目录中出现了一个dzh.db文件,而无法查看表。 因此,我们还需要使用一个名为的插件工具。 它是基于IDEA开发的,所以IDEA中的各种丰富的插件也可以在IDEA中使用。 从导航栏打开文件—>—>进入插件管理界面,如图。
这是一个官方插件市场。 只需要在搜索框中输入“ ”即可找到我们需要的插件,如图。 点击后会自动下载并安装插件。 安装完成后,根据提示重新启动,新安装的插件即可正常工作。
启动模拟器,运行程序,随意添加几个联系人,然后查询联系人,就会在模拟器页面的表格中显示数据,如图。
现在我们打开右侧的File,进入/data/data/项目包名//目录。 我们可以看到已经有一个dzh.db文件存在intellij idea 数据库关系图,如图。
该目录中还有另一个 dzh.db 文件。 这是为使数据库支持事务而生成的临时日志文件。 通常情况下,这个文件的大小是0字节,所以我们可以暂时忽略它。 现在,右键单击 dzh.db 文件 → 另存为,将其从模拟器导出到计算机上的任何位置。 然后观察左侧边栏。 现在应该有一个额外的数据库工具。 这是我们刚刚安装的插件。 如果在左侧边栏找不到这个工具,也可以使用快捷键Ctrl+Shift+A(Mac系统是+shift+A)打开搜索功能,在搜索框中输入“DB”进行查找这个工具。 为了打开我们刚刚导出的数据库文件,我们需要单击该工具左上角的加号按钮并选择选项,如图所示。
然后在弹出窗口的配置中选择我们刚刚导出的dzh.db文件。
单击“确定”完成配置。 此时DB中就会显示dzh.db数据库中的所有内容,如图。
如果要查询某个表的内容,只需双击该表即可。 这里我们双击表格,会弹出如图所示的窗口,提醒我们过滤不合法,但是我们要查询全部数据。 不需要过滤器intellij idea 数据库关系图,所以选择。
这时候表中的数据全部显示出来了,和上面我们在模拟器页面看到的数据是一样的,证明我们的数据确实是从数据库中获取的。 导航栏还具有插入记录、删除记录、编辑记录、搜索记录等功能。 有兴趣的同学可以自行探索。
此时,恭喜你! 您已经学会了创建和查看数据库文件。 无论以后遇到什么数据库问题,都能够从容应对!
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码