大家好,欢迎来到比特猫编程,今天我们继续学习安卓开发,今天我们学习什么内容呢?我们学习这个 separate 数据库,那么在前面一节课当中,我们学习了这个 shared preference, 它是一种比较简单的 kv 形式的一种存储。那我们今天我们学习的 separate 的数据库,那么首先我们得了解什么是 separate, 那么 separate 是一种嵌入式关系型数据库管理系统,它专门用于在移动设备和嵌入式系统上进行存储和管理数据。 那我们 surprise 它是一种轻量级的数据库解决方案,被广泛用于在安卓应用程序的本地数据存储。 那我们首先得知道 circle light, 它是用来存储和管理数据的,并且它是一种轻量级的,那么这个轻量级是相对于 my circle 和 soccerver 数据库,那么 my soccer 和 succover 数据库一般是用于 在电脑上或者服务器上,而我们这个 super light 它是用于我们这个安卓应用程序,就是在我们手机上啊,或者是手表上。那么这里需要说明的是, super light 在实际企业开发中实际上并不会直接使用,那为什么呢?因为这个 super light 编写的代码量比较多, 并且这个 super light 它不是 o r m 框架,那么 o r m 就是对向关系印设的框架。那我们在实际企业开发中会使用一些 o r m 框架,比如说 google 官方的 room 数据库,或者第三方的 grim deal little power 等。那关于这个 o m 框架,我们会在安卓境界课程当中会讲到,那么现在呢?作为新手入门学习,我们还是要学习这个 separate, 那掌握了这个 separate, 我们后面再去使用这些 o m 框架的时候,我们就更加的得心应手。 那下面我们来看一个入门案例。那么首先第一步我们需要去创建数据库帮助类,那么也就是创建一个类去继承 surprise open helper, 它是用于创建和管理数据库的,那我们可以看一下上面的这个代码, 我们自己创建一个类去继承这个 surprise open helper。 然后我们去定义了两个变量, database name 和 database version, 那么分别是数据库的名称和数据库的版本。 然后在构造方法当中,我们会调用 super, 也就是副类的构造方法,然后将这个数据库的名称和数据库的版本传给他。接下来在 angry 的方法当中,我们就要去创建数据库的表,那如果你的数据库当中是有多张表,那么这里就有多条 circle 渔具, 那我们把这个 server 语句定义出来过后,我们就要去执行这个 server 语句,那么如果你有几个 server 语句,那么这里就执行几次 这个方法,那我们看一下这个社会语句的含义。 creditable, 那么是创建一张表,那么这是表的名称 contact, 然后后面括号就是他的 字段,那么这里有几个字段呢?有 id, 有一个 name 和 email, 那么有三个字段,那么其中 id 是 integer, 那么就是整形,那么 primer k 是表示它是主见,这个 auto crement or to increment, 那表示它是逐渐支增的。这个 name 和 email 都是 text, 那么就是文本。那么接下来再看一下,这里会出现一个 un upgrade 的这个方法,这个方法呢就是当我们数据库的版本更新的时候, 就会执行这里代码,那比如说我们数据库的字段发生了变化,表的结构发生变化,那么就会执行这类方法,那么这里呢,我们一般新手呢暂时会用不到,这里我们暂暂时就不讲这个。关于数据库的操作一般有如下四种,也就是插入 insert、 查询、 query、 更新、 update、 删除,这里写错了 delete, 那接下来看一下我们刚才创建的这个数据库帮助类,那么第二步我们就要进行插入数据,因为我们创建了这个表,目前还没有数据,所以说我们需要去给他插入些数据,在适当的地方,比如说按钮的点击四键当中会插入数据到数据库当中, 那么插入数据我们可以看到是调用这个 insert, 那么就看到第八行代码,我们调用 insert 方法, insert 方法这里有三个参数,第一个参数是插入数据到哪一张表, 那么这里我们就指刚才那个表 contact, 那第二个参数我们一般第二个参数我们一般传纳,第三个参数呢? values 就是我们要参与的数据,那么这个 values 它是 content values 这个 对象,我们是通过 content values 来封装我们要插入的数据,那我们的这个数据是 k v 结构的,那么这个是 k, 就对于我们数据库的表的字段,那么这里就是插入这个 name 和 email, 那一定要注意这个 name, email 这个字段一定要跟我们数据库的表的这个字段要一一对应,如果对应不上的话,那么程序它就会插入失败,那么这里是 name email, 那么这里我们就插入这两个字段,是叫,以及这里是它的一个邮箱,就调用这个 insert, 我们就插入成功,那么插入成功过后,我们需要去查询一下,把数据查询出来,那我通过 insert 插入数据过后,我们现在需要去查询一下数据,那么查询数据呢?我们是调用 query 这个方法,我们可以看一下 它是调用这个 curry 这个方法,那么它有几个参数?第一个是我们这个表的名称,我们仍然是查询这张表。第二个是查询哪些字段,我们要查询 这个 name 和 email 这两个字段,那么第三个参数呢?是条件,我们要查询的条件是什么呢?就 name 等于问号,那么 name 等于多少呢?就是第四个字段,就是第四个字段,就是 join, 就是 name 等于 join, 那么这条语句的含义就是我们要查询这个 contacts 这张表,那么查询 name 等于 john, 那么后面呢?还有三个参数,我们都写的浪,那么这三个参数应该就是一些类似于 several 当中的分组啊 那些,但是我们这里就是没有其他条件了,所以说这三个参数全让,那具体这三个参数是什么含义?那可以点进这个 crear 方法去看一下, 那我们把数据查询出来过后,他会将数据封装在这个 cursor 这个对象当中,那我们需要去 cursor 这个对象当中去把数据取出来。我们首先需要判断一下是否查询出来数据了,我就要用这个 cursor 点 move to first, 那么如果能够 move to first, 就代表他是有数据的, 因为查询的数据有可能有多条数据,所以说我们就要通过 do one 循环去便利这个数据,那么这便利的话就是 move to next, 就每查询一条数据,我们就 move to next 移动到下一条数据,那么查询数据呢?这里是调用 get 试卷啊,根据你数据类型啊,如果你是这串类型的,那么就是 get 试卷, 那这里是根据这个表的自动来查,这里是 name 和 email, 这样我就将这个自动数据查询出来了。那最后不要忘记,当我们查询结束过后,一定要将这个 ctrl 给关闭,那这样为了避免这个内存泄露,那么接下来我们进入一个项目的一个实战, 那么进入时间呢?我们首先回到我们的安卓十六六当中, 那回到安卓数据的当中,我们需要去重新创建一个 activity, 那我们因为我们这里 放的东西比较多了,我们重新去创建一个 activity, 那我们就叫 super light activity。 然后呢我们需要去拷贝一下这个布局, 那我们看一下这个布局主要是写了些什么东西, 那主要是放了两个输入框啊,请输入用户名和手机号,然后下面有四个按钮,那么就是添加,当我们点击添加的时候,就会把这条数据插入到数据库当中查询呢,就是查询出所有的数据, 那么修改呢?我们可以修改的这条数据,那删除我们会删除这条数据,那么删除呢?是根据这个姓名的删除啊,修改也是根据这个姓名的删除, 那么下面呢我们就会去创建这个数据库和表,那么在前面我们学习了,我们创建主要是通过创编写一个类去继承这个 separate open helper, 那我们这里就去来新建一个 lay database helper, 我们随便取一个名字, 然后它是需要去继承 circle light database power, circle light open help, 刚刚写错了,然后去实现它的几个方法, 那前面我们已经知道重写这两个方法,另外还有一个是他的构造方法,对不对?这里我们需要去创建一下他构造方法,构造方法呢?我们这里那我们就就只需要一个参数的构造方法, 那名称呢?我们就写一下叫,那这是数据库的名称,这个我们传一个浪就可以了,版本呢我们就传个一就可以了。然后这里我们就要执行这个建表的语句。创建这个表,我们还是先把这个 server 定义出来, 我们看下这 ai 跟我们生成的这张表,那包括一个 id, 一个 name 和 age, 那跟我们这个有点不一样,我们应该是叫电话,这应该是 form, 我们看一下我们这个窗帘是叫 name 和 phone, 那我们就执行这个社会语句了,那这样呢?我们就把这个表创建出来了,我们创建了一个 user 表, 那我们就可以直接使用这个数据库帮助类了,那我们这里需要去把这个数据库帮助类给创建出来, 叫 database helper d b, 那么需要去通过 get readable, 然后得到一个 dv 对象, 那么这里我们还是给他复制成一个成员变量,因为我们待会在点击实现当中会用到, 那么这里还有这个输入框,我们得初始换一下, 应该是姓名和电话, 然后还有一个还有这个按钮八层,那八层我们就不出示化了,八层的话我们就直接给它添加 on click 点击时间就可以了。 我们加一个 unclick, 我们这里已经添加了 uncle id user, 我们就创建一下这个方法, 那这个方法他给我们生成错了,我们得自己动手修改一下,那么这里我们得判断一下我们输入的这个姓名和电话是否有空,我们得判断一下, 这里应该还给出一个友好的提示, 姓名或者电话不能为空。 那如果不为空呢?我们就可以继续往下面直行了点。我们刚才插入数据是 insert, 那插入哪种表呢?是 user 表, 这里他又给我们乱写了,我们得自己改一下。 那我们自己得创建一个 content values, 盲目的把数据放进去,第一个是姓名啊,第二个是电话, 我们这里就把这个 values 放在这里,这样我们这个插入用户就做完了。那接下来我们还要做查询,查询是 final war, 我们生成一下这个方法,那么我们现在要查询所有的用户, 查询所有的用户呢?我们是通过 d b 点 query, 对不对? query, 那查询哪张表?查询 usb 啊?那我们这里是查询所有用户,所以说我们这里查询字段以及查询条件我们都可以不写了, 这样就是代表查询所有的用户,那查询出来应该是一个 cursor 对象,对吧?那我们得判断一下, 那我们可以看一下,就判断一下,如果查询出来有数据的话,我们就通过一个 door 循环去便利,便利出来我们就要去查询这个数据,那么这里是它会 抛出一个异常,我们给他加一个注解,我们把这个注解加到这个方法上面 啊,这样就不会爆粗了。我们现在主要是查这两个字段 name 和电话,那么查出来了过后,我们是需要给他展示出来。我们前面还有一个地方忘了写,我们这里 用 data banding 的方式,在我前面的课程当中讲了这个 view banding, 那我们这里就用 view banding 的方式,我们需要去开启这个 view banding, 那就是这个 beauty features, 我们去开启这个 viewbending, 那我们同步一下代码, 那么这个时候呢,我们就可以去把这个斑点定义出来, 然后我们去创建出来这个 bandi 对象, 那这样呢?我们就可以直接使用了 any 点 phone e t。 那这里我们把这个姓名和电话查询出来,我们需要把它显示出来, 我们显示到这个 content tv 上, 嗯,就跟他 open 了一下, 那么这个 a pand 它会追加到上面,我们来看一下运行的效果,那我们这里还是给它清理一下, 我们这里还没添加这个跳转的入口,我们得把这个入口加一下, 那我们给他加上这个点击 时间,然后通过 intend 的方式跳转过去啊,提示代码有问题,这里应该是通过 intend 的方式 让我们运行一下, 我们点击这个 supplite, 然后程序闪退了,我们看一下闪退原因, 我们这个 database helper 还没创建出来, database helper 等于六一个 database helper, 那它是需要一个上下文,我们传一个 this 就可以了,然后再运行一下, 那我们这里来输入一个张三 电话幺八八,我们点击添加,应该给出一个如何提示,添加成功,我们先查询一下啊,可以看到我们这个确实已经插入到数据库当中了,我们给这个加一个提示 啊,这里添加成功,我们可以清空一下输入框,可以的,这个是比较好的 banding, 然后给出一个提示,添加成功。 那同学们自己写代码的时候最好是自己写一下,那不要用这个代码提示,那因为我是知道这个生成的代码他能不能用, 那我们现在看一下,我们查询一下,查询出来有一条数据,我们再来一个 lucy, 那我们再添加一下,那添加成功,我们查询一下啊,查询出来有两条数据, 那么接下来我们要做一个更新更新的操作,更新的操作呢?我们是根据这个姓名去更新的,那我们现在来做一下, 那么就是 修改 update user, 我们去创建创建一下这个方法,那我们这里给提示是根据姓名更新电话,那么首先我们要获取他的姓名和电话, 那这里也可以做一个教验,姓名和电话肯定是不能为空的啊,不能为空的时候我们才能去修改,那这个时候呢,我们就可以去调用这个 d b 点 update。 那么我们要更新哪张表呢?是 user 表,那第二个是 content values, 我们先写上站的位置,第三个参数是查询的条件是根据姓,根据这个姓名来查询,那我们这里 就把这个字写上,你有一个 content values, 那这里我们就把这个电话放进去就可以了, 那我们现在就是更新这个 user 表,然后根据这个姓名去更新它的这个电话。 好,来我们重新微信一下, 那么还是把所有的数据查询查询出来,我们这里有个 lucy, 那我们这里输入一个 lucy, 然后输入他的电话,我们改成幺九九一二三四五六, 我们修改一下,那这里没有给出提示,我们直接查询一下,看一下是否修改成功,那这里是修改成功的, 那么最后一个是删除,我们把这个删除做一下, 删除是 delay to user, 我们生成一下这个方法, 那么我们首先也需要看一下这个,我们看一下这个 ai 跟我们生成的代码,那首先我们需要去获取我们要删除的这个姓名,那判断一下这个姓名是否为空,不为空的话我们就调用 delete 方法,然后这个是表的名称,然后是根据这个 name 字段来进行删除,删除这一个人, 那这个代码应该是没问题的,我们可以直接使用。那再次强调一下,同学们还是自己去写一下这个代码,那现在我们删除成功了,应该给出一个提示, 删除成功,那这里我们是更新,这里还还得给出一个更新成功的提示,我们再运行一下, 我们先查询,把所有用户查询出来,然后我们删除的话,根据这个姓名的删除,那我们直接点删除的话,就是会提示你姓名不能为空,那现在我们要删除这个 lucy 啊,电话可以不输,我们点删除,好,删除成功,删除成功,让我们查询一下啊,这个确实已经删除了,我们再删除这个张三, 删除成功,那我们查询一下,确实这个招商也已经被删除掉了,那么这次我们这个 surprise 的一个真山改查,那我们总结一下 super light。 我们使用的第一步,我们必须要创建一个类,去继承这个 super light open helper, 然后去定义这个数据库的名称和版本,然后在构造方法当中传给这个副类的构造方法, 然后在 uncreate 当中去创建我们这个表,那么根据你实际的需求,你有多张表的话,这里就写多张表的这个社会语句,然后去执行这个建表语句, 然后数据库的操作就是这个真山改查啊,插入 insert, 查询 query, 更新 update, 删除 delete, 那插入数据的时候,我们是通过 content values 来封装这个数据,那查询数据我们是调用 current 方法,那我写上你要查询的条件, 那这里有三个参数是分别是什么意思?刚才我们其实在 demo 中已经看到这个提示了,我们看一下,我们只要看这个查询的这个是分组的字段, harming 字段和这个排序的字段。啊,是这三个字段。 好,然后就是这个删除,删除就调用 delete 查询的话就是调用这个 query, 那其实 several light 用起来是比较简单的,只是说代码量啊,相对来说多一点,并且使用起来不是特别方便,那在我们进阶课程当中,我们会讲这个面相对象的数据库。
粉丝2661获赞8063


接下来给大家介绍什么是 circle later 三啊? circle later 三呢,是咱们嵌入式当中呃,应用场景啊,应用的最广泛的一种数据库啊,所以我们接下来介绍 circle later 三的特点和发展史。 好,什么是 circulate 三啊?主要分这三个方面做一个简要的介绍。第一个 circulate 三,它是一个轻量级的关系型数据库管理系统。 那清凉剂关系型是吧?那是既然有关系型啊,那他就有什么非关系型,什么分布式等等啊,我们这个类型的是清凉剂的关系型的啊,然后呢,他是以跨平台,零配置服务器等等等等方式啊,存储数据啊。 soco later 三呢, 我们说了啊,轻量级对吧?轻量级表现在哪啊?比方说在这里啊,呃,像什么? my circle 对吧?像这个 post gram 啊,像这种大型的数据库啊,那他都是需要一个独立的服务器的一个进程 去专门去管理他这个数据库。但是 secrely 的三我们是轻量级的,对吧?那轻量级的话,他直接可以在应用程序内部直接操作文件,直接操作这个文件,就跟我们读取这个一般性文件啊差不多,对吧?啊,当然他数据库文件嘛,肯定读取的方式肯定要有一点。 呃,特,特殊性好。然后第三一点啊,赛克类的三非常适合于嵌入式设备和单片机应用场景。这个我们刚才也开头就已经说了对吧,因为人家什么呀,轻量级嘛,是不啊,当然 光轻量级还是不行啊。啊,我们后面还会有介绍啊。呃,接下来我们看赛克类的三的历史和发展啊,赛克类的三怎么来的呢?他最早可以追溯到九六年啊。九六年?是啊,给大家看一眼啊,就这位 啊,就这位啊,可以记一下啊。看这眼神是吧,那么他,嗯,我们这位程序员或者说这位大神,对吧? 因为这是话说也是多少年前以前多少年以前的事情了,对吧?他当时的话是为美国航天啊,航空国家航空航天局 nasa, 对吧?为 nasa 这个 就是工作嘛,他需要这么一个数据库啊,需要这么一个可嵌入式的数据库来存储数据,但是当时的市面呢?没有没有怎么办?没有,那我就研究自 你写一个啊,就是我们现在这个 sqlip 三好,然后 sql 类的三经过。呃,周年或者说基本上主音乐吧,差不多一个季度吧,就是一个版本差不多一个季度就一个版本啊, 就是反正更新频率也比较高啊,然后更新到现在啊,截止我录制课程之前。那我们当前的最新的版本是 security 三的三点三六零这么个版本啊,他发布于他是二二年的十一月份发布的 啊,当然等你开始学习的时候估计这个版本肯定会略略微会有一点更新啊,这都正常啊。然后我们再看 circulate 三的应用场景啊, photoshop 啊啊, five fox, 这个什么 安卓是吧,还有等等等等等很多啊,这个这个一页就要全写下来,这一页根根本就写不完,非常多啊,他的应用场景非常广泛啊。然后我们再看 啊,前面我们说了啊,轻量级对吧,还是一个关系型的数据库啊。你光轻量级,你光关系型是吧,你还要具备一个特性,什么特性呢?就是跨平台 可以执行吗?对吧?啊? windows 下也能跑啊,连接线下也能跑啊,苹果下边也能跑啊,安卓下边一样也能跑啊。将来鸿蒙崛起以后,我相信鸿蒙下边一样他也能跑啊, 因为如果说你写代码写这么长时间了,是吧? c 语言也写了这么多啊。他基于 c, 而且他又简单把一个 a p a 往里边一啊,下载一个库,对吧?就是下载一个编译库就可以了啊,很简单啊,然后零配置, 因为体积小嘛,零配置嘛,是吧?其实翻来覆去其实说的都是一件事啊,它小 啊,他小,轻量其说他是他小,零配置其实说他也是他小,体积小呢,一样也是他小啊,只是从不同的特点 啊,不同的侧面去分析这个事情,对吧?因为他小的话,他不需要什么配置,所以是零配置,对吧?因为他小嘛,所以他体积小,所以他只需要什么?通常只有几百 kb, 几百 kb 啊,非常小是吧?啊?然后呢?除了这仨以外呢,还有一些其他特性 啊,什么特性呢?比方说他要支持这个 sql 语句啊,其实基本上我们常见的一个数据库呢,他都支持这个 sql 语句啊,如果你学习这个数据库啊,数据库相关的内容的时候,你在网上挡一些资料啊,你经常 会用到这个色口语句啊,这个时候呢,你要注意啊,因为支持色口语句的他不见得就是色口六三,好吧。啊,你,你在分析一些资料的时候,你,你要注意到这一点啊,别跟着别人走,走偏了,你不知道你自己在干嘛是吧?然后呢?他支持这个 acid 兼容, 那所谓的 acid 兼容纳 acida 说的就是这个原子性,呃,一致性,然后隔离性和持久性就说的就是 acid 啊, a 就是原子性啊, c 就是一致性, 哎,就说的是这个格力性啊。第一就是持久性,说的是他的这几个特点啊,这是我们一般的这个数据库基本上也都具备的这么一个特点啊,高可靠性, 你既然是数据库,你自然要可靠了啊,你不可靠的话,你我明明往里边写了个五,你变成三,那肯定要 不合适,对吧?啊?这是他的一些特点啊。啊,我们接着往下看啊,强大的 apa 啊,就是编程接口嘛,对吧?那么 c q 类的三呢?提供了一个简单易用的 c 语言, a p i 就是为我们 c 语言提供了一个接口啊,这个接口也是我们后续要学习的内容啊,同时也提供了大量的其他的一些接口,还有一些其他的工具啊,当然, 呃,其他很多工具其实我们用的也也不多,好吧?啊,我们就根据咱们什么东西用的多,咱们课程上就学什么啊。呃,还有一个,他还有一个特性呢,就是可扩展性啊,这个可扩展性其实就是你自己可以写一个函数 啊,你可以创建自己的函数和存储过程,这样的话就相当于自己给自己定制一个这个 supreme 三,对吧?

okay ladies and gentlemen let me take you into the night this with some spanish song, ariva and you kids chance to get to help i thought you robotie has just begun those singing things that happened and let me take you into the night this with some spinning song, a riba and you kids here's your chance to get to help i thought you were party as just because those singing days and happer。

我发现啊,这个百分之八十的项目呀,其实不用跳数据库,就选这个 cqlight 就 够了,对吧?百分之八十项目其实都是小项目,迷你项目啊,可能整体的用户量超不过几千个,甚至一万个都达不到,对吧?很多个人的项目,还有小公司企业的, 每天可能几十个人用啊,甚至这个几个月也不怎么用啊。这种项目呢,没必要弄在线数据库, cqlab 绝对够用,所以百分之八十的项目用这个数据库简单,效率高,而且呢,本地话不需要联网,所以非常不错,所以对于新手开发者会对于这个微小型的一些项目来说,足够用了,你们觉得是不是这样?

大家好,上一节课我们讲了 secret 数据库,新建数据库,然后添加表, 添加属性,添加数据,还有查询插入,删除数据等操作。 但是实际使用过程中,数据户是无法单独使用的,得必须配合 程序项目使用。这里我们以一个 c 上项目为例,讲解数据库和项目之间的关联操作。 首先我们打开微速新建一个项目, 这里啊,如果是第一次新建项目的话,需要下载一个程序包,首先打开应用功能设置,然后确定咱们的 nifermal 和版本,这里是四点五, 从 surpride 的官网下载一个对应的资源包,这里我下载就是四位 max for more 四点五的资源包,第一个资源包,然后挤压到本地, 把这个音特入谱 dr 文件复制,然后 卡被一道可直行程序目录,就是咱们生成的那个呃 exc 程序目录, 然后还有一个文件,这里要添加饮用,就是 sister 点,地上点四克拉特点点啊文件,咱们添加饮用, 然后在程序头添加饮用, sister 点儿,低头点儿 so good。 然后咱们就可以听 增加相应的命令和数据库关联了。下面以一个编辑好的项目为例进行简单说明。 八贪五,点击直行下面的程序,首先连接到数据库并打开数据库啊,第一下 sauce, 这是后面跟的是数据库存住的地址是 db, 可使的文件 可能是 open, 就是数据库打开了,然后后面执行对应的操作,比如说这里的删除原始所有数据,然后添加数据, 然后我查询数据,绑定数据到 teaceat, 然后修改 dtesat 数据,最终再把 decase 数据绑定到数据库,实现这样的过程,咱们启动程序越来越效果。 点击提上测试,这节数据户数据发生变化了,咱们打开数据户软件, 切换到 u 字上表单,刷新一下数据,可以看到两张 数据库和程序里面的数据是同步变化的。

上节课呢,我们讲解了操作 sk 类的三数据库,查询所有数据,或者呢查询一条数据。 接着呢我们讲解操作 sq 的三数据库呢,修改数据和删除数据。首先我们看一下修改数据导入模块,创建我们的连接,获取我们的考试对象,这些都是相同的, 要执行我们的 s q l 调用 s q 的方法,这个也是没有问题的,那要编写的就是 s q l 语句, s q l 语句修改啊,不对特, 后面跟上我们的表明赛特要修改的是哪一个字段?威尔,我们在修改的时候呢,肯定是局部的修改,不是 全部修改,所以说要加二条件,一般修改的时候呢,我们是修改的某一条,所以说加上我们组建 p o o 在直行 sq 的时候,每一个重心负的值呢,我们给呢设了问号,那我们要呢对这个值呢进行传递,所以说传递的时候和在插入的时候是相同的,又一个呢,原组对他进行插入, 求给数据,删除数据,插入数据呢,都需要呢,我们提交也就是考 mite, 如果出现异常呢,进行回滚揉 bug。 最后翻雷里面要 clus, 我们的连接 clus, 我们的有标 创建的零六, 操作 q 累腾,三数据库, 修改数据,第一导入 毛罐 airpodsq, mat。 三、创建连接 c o s q 里头三点钓友考耐克的方法,我们放在一盘下面的 s q 内,里头三三毛里面的三毛点 db, 创建 coser 对象, 我们的游标对象 cost 等于连接钓诱 cos 方法。 接着我们要编写修改的 suv 语句 sql 等于阿布对特表明 possat, 我们要修改他的批内幕 负称什么样的值呢?我们给一个问号,在传入,也就是修改执行 sq 的方法,执行收口的时候呢?我们传入, 我们要修改的是哪一条呢?不是全部,我们要给一个 p o, 也就是修改呢,他 p o 等于一的, 或者是飘等于二的。 执行 执行搜狗就是钓友 coser 里面的 sq 的方法里面有搜狗,我们第二个要传入你要修改的名字成为什么?你修改的是哪一条?我们给一个圆组。例如我们就要修改的是刚才我们查入的第一条, 他的 pu 是一,我们要修改成他的名字,比如说我要修改成小张, 修改车小张,这样我在执行这一句话的时候,有可能出现我们的问题,比如 chikat 呢?把它拆 第三层进行呢?异常处理, 如何出现异常,我们来输出一下异常是什么样的异常来的?异输出异常 在那提示修改失败, 将我们的数据呢?这些回本揉 bug, 芭蕾 翻雷呢?你可以直接进行关闭我们的连接,这时候游标肯定也就关闭了。 关闭连接啊,直接呢关闭 c o, 因为我们有标示 c o 进行打开的,关闭 clus, 当然可以先关闭游标,再关闭我们的连接也是可以的。 来看一下,执行完收口以后,如果没有出现异常,那我们要提交事物, 最后点靠 mit 提示呢,修改成功, 哎,我们呢执行看一下第一条数据呢,是否可以呢?修改成小张, 这些看说修改成功,我们这时候可以呢,我们一起写完查询,我们再执行一下查询,查询的就是第一条,看一下他的姓名啊,他的批内幕呢?以及 修改成小张。 再看一下我们的删除数据, 删除数据和插入数据,修为数据,你只要发现他不一样的地方呢,就是我们的缩口,这个地方是不一样的。直行的时候呢?是否要全插数,这个地方是有变动的。 首先第一个我们要写删除的收口, 删除数据 得累,他不知道哪个表呢? tper sir, 这个表我们三叔不是 所有数据哈,我们要将以什么数据删除呢? pu 等于 这时候我要给一个问号,我传递多少,我删除哪一个?比如说我要将第一条小张这一条呢进行删除掉,那我们呢直写收口,这时候我传递的值呢?只有一啊,只有一,因为我在收口语句里面有一个问号, 在传递的时候,如果他必须是原组类型,我们知道原组类型,如果传递的直,也就是里面包含的元素是一个,这一个元素后面呢必须要加一个逗号。 如果看一下,如果我们没有加, 没有加,他说呢?修改失败啊,修改 失败的原因呢?帕尔米塔就是我们提高的参数呢?他不支持,因为你虽然说上的括号他不是一个圆组,这个地方必须是一个圆组,你加一逗号啊,一逗号。 这时候呢修改不是修改啊,我们这个提示信息呢,应该是删除啊,我们再是删除, 删除成功。如果呢出现问题的时候呢,是删除失败啊,因为我们是复制的,所以说提示信息有一点问题,我们把它呢修改一下,这是删除,我们再试一个删除一的,我们再把二的呢也删除掉, 删除成功。这时候查询啊,我们看一下所有数据里面是否呢真的已经删除掉了,看这查询数据的时候呢,以及小张 和我们拍 po 等于二的这一条已经被删除掉了,这呢就是操作 sk 类的三数据库呢,修改以及删除我们的数据。

这次课我们讲解数据库编程及潘审操作我们的数据库,首先呢看一下潘审操作 sq 的三数据库, 什么是 sq 的三数据库呢?在派审三版本以上, sq 的三数据库是我们派审的内置的一个库,他呢提供了对 sq 的数据库的访问和数据库连接的操作。 如果呢需要操作 sq 类的三数据库,只需要呢导入 sq 类的三模块就可以使用,那如何使用 简单呢?不主人如下,首先要导入这个应该没有问题,那创建连接用考耐克的方法进行创建,创建好的连接对象呢? 首先他可以获取执行缩口的有标对象调用 coser 方法 还可以呢,提交事物考 mit 回滚我们的事物揉 bug, 以及最后我们要关闭连接可漏的方法, 那执行搜口有 sq 的, sq 的 money 啊, facel 等等啊 facel 在查询的时候已经查询一条记录 face one 这些方法在我们讲解插入,修改,删除以及查询的时候呢,依次会说到 数据库使用完,无论呢是我们的游标还是我们的数据库对象,都需要进行掉右 clus 方法呢进行关闭。首先我们看一下第一个视力创建表,使用 q 类三创建表,那首先要创建连接,创建连接的时候 首先要创建一个 db 的文件,也就后缀为 db 的文件,将这个文件的目录塞到我们 ctrl 的方法里面,这样就可以创建一个连接。创建好连接以后, 接下来以后我们呢就使用 sk 的三呢创建我们的表,创建表, 首先你要写表的缩口语句,这个应该也没有问题,那执行这个缩口语句使用的就是 cost 对象,这个 cost 对象呢就是连接对象钓友 coser 这个方法进行获取,那如何执行?就是钓友 sqt 在这个过程有可能有异常,所以说我们要插 cat, 最后不要关闭音标,关闭连接,把关闭的写到翻译语句里面, 我们呢代码进行测试。首先创建一个目录,数据库阶层 创建一个呢文件,第一个 操作 sq mate 三 创建表, 在使用的时候我们呢简单罗列它的步骤,第一步 导入,导入模块,要导入什么模模块呢? sulete 三模块 就是 aimpods q mate 三啊,这个模块。接下来以后呢我们第二个要创建连接,创建连接掉入的就是 sq max 三,里面 有靠耐克的方法进行创建连接, 那创建连接 s q mate 三点二 考 nice, 这里面呢我们要传 d b, 也就是传一个 d b 的文件目录,那需要创建一个 d b 的文件目录,创建一个 d b 的文件目录,例如我在一盘,首先我要创建一个文件夹 s q 内存三 三呆萌, 这里面我们要创建一个滴币后缀的文件 单帽。第二 db, 将这个目录呢写到 文件的目录啊,放到我们的考耐克的方法里面,一盘冒号 他目录下面我们创建了一个单貌点 db, 返回的有一个对象就是我们的可耐克的对象,这样就创建了连接,我们可以输出看一下连接是否创建成功,也就是肯奈克, 这样我们就创建了一个连接。创建好连接以后,接着第三个,我们要创建游标对象啊,游标对象,那创建游 标对象 就是钓友考耐克里面 coser 方法 来进行创建考试,这个游标对象就是执行缩口,现在我们的缩口呢就是要创建表。接着第四 编写创建表的收口语句, 创建表,这时候复习创建表 sql, 等于 酷瑞特推宝 t, 比如我们创建这是一个 pose, 这个表 表里面有组件 p o o, 他呢是一个数值类型的数值类型,这时候就可以有一提折,他是组件 promenk o two one two three mat 自增长的第一个字段, 我们可以把它呢给成我们三个引号啊,三个单引号或者是三个双引号,就是可以放一个文本, 这是创建的第一个字段, 现在我们创建第二个拼音内蒙,他是 叉,我们可以加有约束 note, 第三个我们给他呢创建一个年龄,年龄也是引体者指数类型, 这样我们就创建一个三个字段的一张表,他是表。编写好收口以后,接着第五步,我们要执行收口,执行收口就是康婶对象 c u r d r sq 的,我们的收口直行,我们的收口 执行缩口有可能成功,也有可能失败,因为我们的连接都要进行关闭,所以说我们呢给他加一个一层的处理,就是差将呢执行缩口放在这, 如果呢出现异常,我们首先呢输出一下异常是什么倒数呢? 创建表失败啊,创建表失败,如果执行没有问题,我们在这呢输出 创业表成功,创业表成功。最后 帮你 要呢关闭游标,关闭我们的链接,关闭游标 cosel dir pro 的方法,关闭连接 coud clus 翻蕾,如果出现异常或者是没有出现异常,他都会直斜的一句块,所以说 很否则符合我们呢关闭连接啊,释放我们的资源这样的类型,所以说要加上一场处理翻垒,我们要关闭游标,关闭我们的连接 来执行, 说呢创建表成功,这就是 我们拍摄呢操作 sq 类的三数据库来创建我们的表,加号啊,把这个呢补全。第六个就是我们要执行收口,最后要关闭连接, 导入模块创建连接,创建有标对象,最后要执行我们的收口, 关闭连接。

如果信用卡是 rmb 的 设备内存啊,只有六十四兆。 b。 如果你想用数据库保存设备历史记录,应该选择哪种数据库比较好?答案是 cclit, 它是轻量级内存小单文件的数据库,可以完美适配自愿有限的信用卡环境, 他占用内存很低,可以轻松的实现参数读写和历史数据存储性能啊,也非常稳定。如果你担心水的历史数据不断插入啊,导致数据库文件过大,影响读写速度,那么你也可以通过一个文件分片机制来解决这个问题。 你可以设置一个条数的限制,比如设定十万条域值,如果文件的数据条数啊超过这个域值,就自动创建一个新的数据库文件,这样既可以控制数据库单文件的大小,又能保证查询效率。 所以 sql 加分片技术是切入式利用数据存储的优秀方案,记得关注再走哦!

ask you alli 是一个非常受欢迎的数据库,在数据库排行榜中已经进入前十的行列。这主要是因为该数据库非常小巧,而且可以支持 linux、 windows、 ios 和 android 主流的操作系统。 sqlx 非常简单,是一个进程内的动态库数据库,其最大的特点是可以支持不同的语言来使用,比如戏戏家家、 drop 等等。 同时, sqli 还是一个开源的数据库,也就是开发者可以根据自己的需求来修改数据的功能特性。 sqli 虽然非常小巧,但功能却非常 丰富,正所谓麻雀虽小,五脏俱全。 s q l i 不仅具备基本的 s q l 特性,还具备所隐触发器、仕途和事物等特性。 s q l i 的主要 p i。 sql i 提供两种访问接口,一种是通过 slide 命令型工具,另外一种是通过动态库, 也就是 api 函数。在学习 sqli 架构之前,我们有必要对其 api 进行一个简要的介绍。其实 sqli 的 api 很简单, 主要包括三个,分别是 squat 三肉盆、 squat 三 xx 和 squat 三 q 三个函数。 其中 school axel axax 则是用于执行 ask you l o 语句的函数,也就是说 school axel axex 是 ask you l ax 功能的关键入口,我们后面分析代码也应该以此函数作为突破点, 其他函数相对简单,也没那么重要。 sqli 整体架构首先我们从整体架构上介绍一下 squat, 其架构如图所示,包括接口层、 s q l 命令处理器和存储后端等。最为核心的不是就是 s q l i 的内核了,其中包括接口层 s q l 命令处理器和虚拟机三部分。 s q l 命令处理器负责对用户的 s q l 进行预处理。最 中生成适用于虚拟机执行的代码,其下是后端部分,后端部分相当于存储引擎。下面我们简要的介绍一下每个模块的功能。接口 suit 使用通过函数调用实现。 为了避免与其他库出现冲突, sql at 函数都以 swax 三作为前缀。接口部分的实现在文件 main c, legacy 戏和 vp 戏中,其中 main 戏中包含其主要的接口,包括 squatsun open, squatsun come, 肺咳, squatsun close 等等。 ask you lh 中最终的函数不在 man 系中,而是在 legacy 吸中。该文件中只包含这一个接口的实线。此法分析器此法分析器对阿斯 qlo 语句字符串进行解析,最终生成单词序列,并且将生成的单词序列传给解析器进行下一步的动作。 该功能的具体实现在文件 tokanish 系中,核心入口函数为 squatsung round porser 解析器。 ask you allied 的解析器基于 lemon 实现, 他实现将 sql 与距字符串解析成于法术。 lemon 是一个与 yak bison 类似的此法分析库。该库的原代码在错误目录中。代码生成器,代码生成器用于生成于 ql 语句对应可以在虚拟机执行的代码。代码生成器实现比较复杂,包含的文件有 build c, delete c, attach c, expert c, insert c, pregnant c, select c, off c 等等。通过文件名可以看出, 这里很多文件其实分别对应着一个 last q l 语句,比如 delete, insert 和 selecting。 虚拟机 sql 的具体执行在一个称为虚拟机的组件中进行的,这个在前面架构图中已经有所展示。虚拟机执行的代码有前面代码生成器产生,虚拟机 的实现。在文件 vd 微车 vd 系中, v e 数 s q l i 的数据通过 b 数进行组织管理,每个表或者所以都有一个对应的 b 数,所有的 b 数存储在一个数据库文件中。 b 数的具体实现在 tree c 和 tree a 唇剑中。叶缓存 sqli 的文件被划分为等份大小, b 数也是以该大小为力度来对数据进行管理, 叶缓存是该力度对应的内存内容,通过该内存实现对数据快的读写等访问。叶缓存相关的实现。在配置西和他去系等文件中。操作系统接口 ask 是一个跨平台的数据库,其存储数据需要兼容 windows 和 linux 的文件系统和 pi。 为了方便 ask you l i 实现了一个抽象层, 这样对于 sqlit 物逻辑来说,只需要调用该抽象层的接口即可, 而不用关心操作系统。基础库包含一个被各个模块都可能使用到的基础库,比如内存分配、字符串处理等。 sql l 轮件格式 前文我们简要的介绍了一下 sqlit 的软件架构以及每个组件的基本功能。接下来我们介绍一下数据库文件的相关功能。在 sqli 中,一个文件承载着一个数据库实力,这个文件称为主库文件。除了主库文件外,还可能有一些其他文件,比如用于事物的日制文件等。本文主要集中介绍主库文件,其他文件后续介绍耶 数据库文件由多个页构成,每个页的大小在五百一十二到六万五千五百三十六字节之间,且大小必须是二的密 页通过编号进行标记,起始值为一,最大编号为二的三十一次密道。二页的默认大小是四 k b。 本文以默认大小为例进行介绍。在数据库中的每个页都有一个特定的用途,这些用 图包括所字结页、剩余页、礼数页、指针映射页、有效复载一出页。数据库文件的第一个页是比较特殊的,它包含整个数据库文件的描述信息,这里称为数据库头信息 数据库头。数据库头包含一百个字节的内容,其中每一个成员的偏移大小和功能如下图所示。我们可以创建一个数据库实力, 然后对照文件内容与数据库头的格式进行理解。比如,数据库头的第一个成员为一个魔术,用于标识该文件为 sqli 数据库文件及版本,在下图中可以找到该信息, 可以看出两者完全匹配。除了上述数据库头的格式外,每个不同的也都有不同的布局。陷于篇幅,本文暂时不过多介绍, 后面结合实力,专门写一篇文章,介绍各种不同的页的布局参考内容。建原文链接!建原文链接!建原文链接建原文链接!

上节课呢,我们讲解拍摄操作,我们的 sk 三数据库,对于我们数据库呢创建了表现,在我们看一下使用 sk 的三呢插入数据, 插入数据执行我们的 sqt, 或者是我们的 sq 的 money, 如果执行 skut, 他呢是插入的一条记录,如果执行 sq 的 monny 呢,可以插入我们多条的数据, 而且呢 sq 的 money 呢,要比我们循环直接 sq 的插入我们的数据效率要高。首先我们看一下使用 sq 的三插入一条数据 文论你是做的是什么操作,首先需要导入 sq 类的三零炮弹, 导入进去以后创建我们的连接,创建连接,刚才我们创建了表,所以说呢,我们使用的那个连接啊,一定要和刚才你创建表那个呢?因为我们要现在对那张表插入数据 要保持一致。接着要创建我们的高色对象,错接高色对象,以后编写色口插入就是音色的音兔,后面呢跟上我们的表明,表明里面如果你对部分字段进行插入, 由于我们的主界是自增长的,我不需要呢继续维护。所以说我在插入的时候呢,对于部分字段进行插入,要写字段名,用逗号呢进行分割,最后歪六字你写了几个字段,这时候我们要用 有几个问号呢代表呢,当前给他进行呢传的那个值,所赞的一个赞为福。在执行的时候,我们会对当前这个问号呢进行传值, 在执行钓友 sq 的插入一条,第一个参数就是我们要执行的缩口,第二个呢就是要传入的参数, 我们现在要传入的参数的字段是两个,一个呢是批内,一个是一整,所以说在传入的时候,大家可以看到我用的是一个圆组啊,小括号括起来对他进行传入, 无论你是三个还是四个,这个地方呢都要用圆组啊,这些括起来也就是作为一个参数,这个参数的类型是圆组,你的值呢都有放到圆组里面传, 如果直接到这没有问题,我们就提交事务,我们呢提示一个插入成功,如果呢出现问题我就要滚滚啊,提示插入失败,无论是插入成功还是我们的失败都需要呢关闭有标调,用可乐的方法, 现在呢我们进行测试,创建零二,操作 s q 累成三,数据库, 插入一条数据, 第一步,倒入模块 零 pose sk 三。第二步,我们要创建连接, 创建连接掉入 sq 里的三,里面考耐克的方法,我们创建的连接呢是放在一盘,一盘下面我们有一个 sq 累腾 三单毛,下面有个单毛点 db, 我们刚才创建的表放在了这个 db 目录,哎, db 文件点下下面创建了连接,创建有标对象 cos, 调右连接点 cos 这一个方法,接着我们就可以 编写我们的收口,编写插入收口 s, q, l 等于 instin two。 后面表明我们就要踢 pose, 因为要插入的是部分字段,我们总共 pose 表示三个字段,而我现在呢要对 p 内幕和 a 指插入,我的 p, n, o 呢是字增长的,不需要呢插入,所以说我要把字段名写到这个地方。 w 四,插入两个字段,有两个问号呢,进行对他进行,在为我们在执行的时候对他进行负值,接下 直行有直行缩口调右 cos 二点 sut 直接呢 money 是直线的多条,而我们现在是插入一条,所以说直线 sq, 这个 sq 的我们看一下,点进去 sq 的里面第一个呢? cf 啊,他的内里面当前自己对象不用看第二个的话呢,这个是我们要从你 传递的啊,参数啊,传递的参数 有传递的参数一个星号,我们要传递的就是一个圆组啊,传入一个圆组,对当前 p 内幕和 a 制呢进行复制,例如我插入 姓名,对他这些年龄啊,这就是我要插入的这一条,第一条数据的值张三二十四, 那执行这一条有可能会成功,也有可能是没有成功,成功以后我们要提交事物,所以说我把它放到踹啊踹里面。执行到这以后,我呢 先把 airpodssappise 如果出现隐藏,我要回滚 reo bug 我再给一个呢,提示插入数据失败啊,插入数据失败,那同理啊,就是相反的操作,我 执行完到这没有问题,那我肯定呢要提交事务, 提交事物这个点靠 mite 提交我们的事物。同时呢,我再输出一句, 插入数据成功,无论呢你是成功与否,我们都要进行关闭连接,所以说伴侣 首先要关闭游标连接, 关闭油标连接 cur, 点调右可乐方法,还要进行关闭 数据库连接 ceo l 点 来我们执行,看一下张三这一条数据呢,是否可以呢?插入成功来看数据插入成功,这个在我们在查询的时候也可以看到,这个地方我们提示呢,数据插入成功,这就是操作,我们 sq 类似三插入数据一条啊,那接着呢,我们看一下插入多条数据, 加入多条数据,我直接呢把零二呢复制了一份, 前面这些都是一样的,创建连接,创建 sqcur, 最后下面呢有一个 skol 语句,插入也是一样的,只是直行的时候,在这个地方呢是不一样,直行缩口, 我们要执行插入多条数据的缩口,那插入多条传递的值肯定是多个, 首先只有 r 点啊, sq 的 money, 看 monny 的话呢,传递我们的收口,传递完收口以后,第二个的话, sqseq, 也就是序列,我们用一个列表将你所传递的值呢?用列表呢把它扩起来 来。第一个 sql 没有问。第二个呢,你要传递列表,将传递的值每一个都放在一个呢,是一个圆组,多个你要传递的多个值, 用列表呢把它存储。例如我们要第二个要插入的数据 年龄, 再擦一个 年龄, 他的年龄来看一下。这时候 我们的数据啊就作为列表呢传入到我们 sq 的 money 里面,最后呢把它如果执执行 sq 的 money 没有问题,提交我们的事物,插入多条数据提示呢,插入多条 数据成功,如果 出现异常,我们呢就是插入多条数据失败,最后把我们的有标和连接呢进行关闭, 他说直写插入多条数据成功,这就是攀审操作。我们 sq 的三数据库,插入一条,插入多条数据,插入一条 数据和插入多条数据呢,钓物的方法不一样,传递的这个参数也有所区别。如果插入的是一条数据,我们呢直接呢作为一个圆组,把它的值放进去。如果插入的是多条数据, 当前你要是一个列表,列表里面是多个拍摄的信息。

最能打的芯片之枭龙八剑三,如果你一觉睡醒回到二零二四年,并且打算换一台手机,那么搭载枭龙八剑三的手机绝对是你的不二之选,因为枭龙八剑三是枭龙进步最大的一款芯片, 安兔兔跑分能达到两百五十万分,并且它还是首款专为移动设备生成,是 ai 设计的芯片。老样子,来给不熟悉的朋友介绍一下, 枭龙八真三的工艺采用的是台积电四纳米工艺,其 cpu 架构采用的是八和一加五加二架构,对比前代性能提升百分之三十,能效提升百分之二十。 gpu 搭载的是 i gno 七五零 gpu, 该 gpu 主频能达九百零三到一千兆赫兹,性能与能效提升了百分之二十五,光驱性能提升了百分之四十。并且在影像方面,它集成三个十八比特感知 isp, 这样使单镜头能达到一点零八 e 像素和录制八 k 三十 hd 二视频。总体来说,枭龙八真三是一颗综合性能比较强的芯片。