粉丝119获赞532

大家好,欢迎来到比特猫编程,今天我们继续学习安卓开发,今天我们学习什么内容呢?我们学习这个 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 用起来是比较简单的,只是说代码量啊,相对来说多一点,并且使用起来不是特别方便,那在我们进阶课程当中,我们会讲这个面相对象的数据库。

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。

哈喽大家好,不知道大家有没有使用过这个色可爱的这种稳定型数据库,呃,在我们这个桌面应用开发和这个 app 开发的时候,我们如果要把这个数据存储到这个本地,当然这个本地为什么要存储呢?当然是为了这个数据的一个持久化, 这时候呢我们会使用了这个斯克莱的这样的一个呃数据库,它的优点呢就是不需要安装,不需要像这个买烧烤 oraigue 这个 solo 这样的个数据库,需要下载这个软件包进行安装。 然后呢我们通过这个代码的形式可以创建这个数据库以及创建表,然后在这里面呢他的一个查询插入 更新相关的一个操作呢,都是性能非常不错的。不知道大家有没有想过这个是个赖的,这样的个文件型数据库也能通过远程访问的方式来进行操作, 那怎么操作呢?当然这个步骤稍微有点麻烦。 首先呢在这边我有两台电脑,这两台电脑呢都是连上这个 wifi, 所以它都是在同一集网里面。 然后我对这个红色的电脑进行相关的一个操作,在这边我有一个这样的文件夹卖笑,呃,我在这边把它设置为一个共享文件夹, 在这边我选的是呃,所有人都可以 可以进行相关的一个操作啊,这边有呃读取和读,呃就是和写录这两样操作他都都可以支持。 然后我们还要设置一部这个当然是为了一个快捷的一个访问啊,主要是在这个控制面板里面,这边有一个共享网络和共享中心 啊,我们找到这个更改高级共享设置,在这边有个公用 上面的东西啊,什么启,启用网络发现这些东西我们都选启用。最后一项就是关于这个密码保护的一个共享,在这边为了一个就是快速实现,我把它关掉了, 关掉了这个,呃,密码保护 在这边设置完了,然后我们就在另外台电脑上面进行相关的一个操作, 刚才我这个电脑有点卡啊,现在我切成这种录屏的方式,录屏的方式大家看的更清楚一点,我这个手机没办法一直拍摄,一直给大家讲解 啊。在这边呢,我们直接呃,就是通过这个就是文件共享访问到这个文件共享啊,我们这个 ip 地址就是我这个红色这个电脑的一个 ipd, 我们进来,然后这里面有两个文件夹啊,这个文件夹 是这个麦笑,是我们是我刚才建立的一个文件夹 啊。在这边,呃,我可以给给大家看一下我本地的一个 ipipcomfig 啊,我们可以看一下他这个后,对是一点九,跟这个是完全不一样的,说明他俩呢其实是在同一个局网里面。 然后在这边啊,我可以配置一下,我把它配置成这个驱动是爱,然后我把这个地址往里面放, 点击完成。好,这时候我们可以看到这里面又多了一个网络位置,是这个 ipad 在这边,我把它换成 ipad, 就是我要对这个 ipad 里面的一个这样的一个数据库买笑点, sky 的这样的一个文件型数据库进行相关的一个操作, 然后我把这个项目启动起来, 我点击这个四个赖的,他是对这个四个赖的进行一个相关的一个操作,我点击一下, 好,这个说明他操作成功了。我来看一下啊,这边是不是多了一个这样的数据库, 我把这个数据库打开, 我们可以看一下,这里面多了一张这样的个, 然后呢我们回过头来看一下我那个红色的电脑里面有没有生成这样一个文件型数据库, 然后我在这个红色电脑里面来找一下有没有生成我刚才操作的这个文件,就是这个 stay 的文件, 我们找到这个迈向啊,这时候我们可以看到啊这个文件,然后修改时间就是这个十一月十三号。 当然有一个东西我们要注意一下啊,如果我这个红色的电脑,如果它处于一个休眠或者关机这个状态,另一台是这样的, 这个计算机它是访问不到这两个就是网络位置的,这点我们一定要注意。好了,这一期视频我们就分享到这了。

接下来给大家介绍什么是 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 三,对吧?

上节课呢,我们讲解了操作 exculate 三数据库。对插入一条数据,或者是插入多条数据。这节课呢我们讲解呢对数据的查询。 数据查询执行完 circle 以后,我们的邮标对象有一个 fetch all, 它会获取所有的数据。还有一个呢, fetch one, 它可以获取呢一条数据。 如果呢,获取的是多条数据,它用一个列表来存储,列表里面每一个每一个又是一个原组。如果 butterra 的话呢,它获取到一个结果,这个结果呢返回, 这就是一个原组。我们当前的一个对象。首先看一下 butcher 查询所有数据,前面导入模块 import, 在创建连接创建我们的 cose 对象。这些呢都一样。现在要编写我们的 circle select sing from 表明就是创建我们 circle, 就是查询的 circle 查询。现在我们没有条件的查询,查询当前插入的所有 percept 表里面的数据, 直接 s q 的 s q l 进行呢。执行 c 口。执行 c 口以后,我们要获取所有数据。 you fetch all。 这时候你可以看一下我们 fetch all 返回的它是一个什么样的对象, 是不是一个列表。其实要把所有数据啊。所有数据呢,就是多条数据存储, 他格调存储的能放多条数据的一个类型来进行存放。最后如果是我们返回的他是一个列表,我们就放 in 呢,进行便利 雷输出每一个 pass 的信息。如果呢,失败啊,我们提示呢查询失败。最后斑雷里面关闭我们的右标对象,以及关闭我们的连接 来创建一次。我们操作 s q late 三数据库,查询所有数 句。第一步我们要导入模块,写 import exculate 三、创建连接 the exculate 三、调用 connect 方法。我们在 e 盘, e 盘下面有一个 q late 三 demo, demo 点儿 d b 创建邮标对象 concert, 就是对于连接对象调用 concert 这个方法。接着我们要创建 查询 circle s q l select c prom t perk 这一个表,查询所有的没有。我们写 we are 条件 将现在我们刚才上节课插入的 press 数据呢全部查询出来。那执行就是 c u r execute execute l 在执行这个 execute, 我们呢把有可能正常,有可能出现一层,所以说我们把它呢放到 chai 里面, exception except exception 我们输出如果出现异常,输出一下异常信息,再呢进行提示查询所有数据失败。 family 呢要进行关闭, 关闭我们的有标 c u r 点儿 close 关闭连接 遮点儿 cloth。 可以看一下现在我们的 cost 对象 呢, s q 的 c 口。这个呢我们都知道在查询在插入数据的时候,他也执行 s q 的 s q l, 但是在查询的时候呢,要获取结果结, 这个是跟插入不一样的,要获取结果即要获取它查询的结果。 you cause 点 fetch all 啊 fetch all fetch all 里面返回的当前肯定是我们要查询到的所有的用户。 那我们首先看一下它是一个什么类型。我们输出一下 personal 查询是不需要提交事务的啊,所以说这时候没有事务执行。看一下我们 看到它存储到一个方括号里面,所以说它是一个返回的,是一个列表,列表里面呢每一个又是一个 percy 信息, percy 信息里面有多个字段,它放到了一个原组里面。 所以说我们现在呢可以放 in press o, 这样便利到第一次循环便利到第一个,也就是我们张三这一个用户信息,直接输出 presser 啊,直接输出我们的 presser。 第二个就是我们的小李依次啊循环,把当前查询到的所有数据都可以获取到。执行看一下,这就是 我们用循环进行便利获取到我们的每一个 press 对象。这是呢查询所有的我们呢,还可以查询一条 you fetch one, 复制零四,我们呢改成零五,操作 execute 数据数据库查询一条 上面的创建连接,导入模块,创建邮标对象,写我们的 c 口。这些都是一样的,只有呢是在获取结果结, 获取结构机获取的是一条, 获取一条数据。 翻车 one 啊翻车 one。 来我们看一下翻车 one 获取到的是一条吗?我们输出一下这个 person, 看一下, 它就是一个原组啊,返回的就是一个原组,就是当前第一个我们的用户 presser。 这呢就是操作我们 escalate 三数据库,查询所有数据,或者查询一条数据。

用 python 提升你的能力进阶篇六点二,使用 s q light 在前面的课程中,我们介绍了数据库编程接口的知识,这节课我们学习一下使用 s q light 的方法。 首先呢,我们介绍一下 sq light, sq light 呢,不是一个客户端服务器结构的数据库引擎, 而是一种嵌入式数据库,它的数据库是一个文件, s q light 将整个数据库包括定义表,锁引以及数据 作为一个单独的可跨平台的使用文件存储在主机中。我们这里所说的客户端 服务器结构的数据库主要是指 allocal 或 my circle。 我们可以使用 person 来创建 sq light 数据库文件, 他的操作的基本流程如下,首先呢,我们要创建连接对象,也就是 connection object。 然后呢,我们使用连接对象下的方法创建邮标对象,也就是 curse object。 然后呢,我们使用邮标对向下的方法执行 circle 语句处理数据。 处理完数据呢,我们关闭邮标,然后再关闭连接对象。下面我们 做一个例题演示实践一下,使用 s q light 模块创建一个 company 点 d b 的数据库文件,然后直向思考语句,创建一个 staff, 也就是用户表 staff 呢,包含 id name 四段, 我们演示实践一下。 打开 sublime text 编辑器,点击 file new file, 按 ctrl s 保存, 我们将它保存在地盘的 practice 文件夹下,将它命名为六杠一点 p y 按 inter 键。 首先呢,我们要引入 s q light 三这个模块, 由于这个模块呢是 python 的内置模块,所以我们不需要安装就可以使用。 然后呢,我们创建数据库连接对象,并辅值给变量 c o n n 使用 connect, 它的名字为 company, 点 d b。 然后呢,我们使用连接对象 c o n n 下的方法创建邮标对象,并复制给编 面料 course。 然后呢,我们使用邮标对向下的方法执行 circle 语句。 然后是我们创建这个 数据表 create table, 名字为 dos。 然后呢,它是 首先是 id, 它是 i n t 十,然后它是逐渐 primary k。 然后呢,我们创建他的名字,他的数据类型为 watch 类型。 然后呢,我们要加上这个分号,按 ctrl s 保存一下。然后呢,我们要关闭这个邮标 close, 然后呢,再关闭这个连接对象,按 ctrl s 保存。 我们运行一下这段代码,打开 windows 的名扬窗口,我们在其中输入 python 六杠一,点 p y, 按一个键, 程序运行完毕,我们打开看一下,大家可以看一下,在 d 盘的 practice 文件夹下,也就是当,也就是程序运行的当前目录下,它创 建了一个 company, 点 d b。 这就是我们使用 s q light 三这个模块儿创建的数据库文件 company, 点 d b。 我们创建好了数据库文件,就可以使用 python 中的方法操作 s q light 对数据进行增筛改查。 首先是新增数据,它的语法格式如下, insert in to 表明,然后是字段名, 然后呢,我们输率输入词段值。下面我们做一个例题 演示,实践一下。使用 s q light 模块向已创建的数据库文件 company, 点 d b 的数据表中插入五条信息,我们演示实践一下。 打开 sublime text 编辑器,点击发 new 发,按 ctrl s 保存。我们将它保存在地盘的 practice 文件夹下,将它命名为六杠二,点 p y, 按 inter 键。 首先我们要引入 sq light 三这个模块, 然后呢,我们创建数据库,连接 对象并辅执给变量 c o n n, 它是 calm partner, 点 d b。 然后我们使用连接对象 c o n n 下的方法创建邮标对象,并辅值给变量 course。 然后我们使用邮标对向下的方法执行 circle 语句,新增五条数据, 第一条 curs 点 x exclude, 然后是 啊, circle 语句 insert into stuff, 就是 id name。 然后呢,我们嵌入这个数据 values, 它的数据双引号一, 然后是双引号 s q light 三, 我们要输入五条数据,我们复制一下这段语句。 第二条数据,我们插入唐僧西游记中的人物。 第三条数据,嗯,我们插入数据孙悟空。 第四条数据,我们插入猪八戒。 第五条数据,我们插入小白龙,然后我们修改一下它的 id, 三 四五,按 ctrl s 保存。 然后呢,我们关闭邮标对象。然后呢,我们提交事务,使用 c o n n 下的 commit 这个方法。 然后呢,我们关闭, 点击对象,按 ctrl s 保存, 我们查看一下这段代码,我们这个地方忘记了括号,这应该是 curse 方法,按 ctrl s 保存。我们运行一下这段代码,打开 windows 的命令行窗口,我们在其中输入 python 六杠二,点 p y ink 键,程序运行完毕, 我们也可以查看 sq light 数据空中数据库中的信息。我们使用的 circle 语句如下, 使用 select 自断名 from 表明 where, 后面紧跟着是查询条件。下面我们做一个例题演示, 实践一下,在 sku light 数据库中,使用邮标对象 fetch out 获取查询结果,并打印查询结果, 我们演示实践一下,打开 sublime text 编辑器,点击 file new file, 按 ctrl s 保存, 我们将它保存在地盘的 practice 文件夹下,将它命名为六杠三点 p y。 按 inter 键, 我们关闭这个窗口。首先我们要引入 s q light 三这个模块, 然后呢,我们创建数据库,连接对象并辅值给变量 c o n n。 然后我们使用连接对象 c o n n 下的 curse 这个方法创建邮标对象并复制给变量 curse。 然后呢,我们使用邮标对向下的方法执行 circle 语句查询数据。 我们这个地方是使用 select 星 stuff。 然后呢,我们获取它获取查询的结果,并复制给变量为 double。 我们使用 fetch all 这个方法, 然后我们打印这个结果, 然后我们关闭邮标对象,然后我们关闭数据库连接对象, 按 ctrl s 保存。我们运行一下这段代码,打开 windows 的冰凉窗口,我们在其中输入 python 六杠三点 p y 按一个键,大家可以看一下我们打印了获取的查询的结果。一,思考三, 二,唐僧三,孙悟空,四猪八戒五,小白龙。 我们除了使用 fetch all 这个方法,也可以使用 fetch one 和 fetch many 这个方法。对于这两种方法呢,我们在书中进行了介绍,如果同学有兴趣,则看一下书中的介绍。 我们也可以修改数据库 s q light 中的数据信息, 使用的 circle 语句为 update 表明,然后是 set 四段,名为四段值 where, 设置它的查询条件。下面 我们做一个例题演示,实践一下,在 s k o light 数据库中,使用不同的思考语言,将第三条记录的内容修改为沙僧, 将第四条记录的内修改为人参果。修改完成后,获取并打印整个数据表,我们演示实践一下。 打开 sublime text 编辑器,点击 file new file, 按 controls 保存。 我们将它保存在地板的 practice 文件架下,将它命名为六杠四点 p y 按 inter 键。 首先呢,我们要引入 s q light 三这个模块, 然后呢,我们创建数据库,连接对象并复制给变量 c o n。 然后呢,我们使用连接对象 c o n n 下的 curse 这个方法创建游标对象并复制给变量 curse。 然后我们使用游标对向下 的方法执行 circle 语句修改数据信息。 首先是 update staff, set name 为沙僧。 这个地方我们需要使用双引号, 然后他后面的条件是第三条记录。 然后呢,我们使用第二种方法来修改数据信息, 它是 update stuff said name 等于一个问号,然后呢, where id 也等于个问号。然后呢,我们在这个地方呢是小括号,嗯,人参。 然后呢,它是四,按 contrace 保存。 然后呢,我们打印修改后的数据信息。首先呢,我们要查询这个结果并腐植给变量 result, 我们要查询一下使用 curse 呃,然后它的 circle 语句是 select 星 from staff 这个表。然后呢,我们获取查询的结果并复制给变量 result cross 点 fetch off 这个方法。 然后呢,我们打印这个结果 without。 然后呢,我们关闭这个邮标对象。 然后呢,我们提交事务,使用连接对向下的 commit 这个方法。 最后我们关闭连接对象, 按 controls 保存。我们运行一下整 段代码,打开 windows 的命令行窗口,我们在其中输入 python 六杠四点 py, 大家可以看一下。我们将第三条记录修改为沙僧,将第四条记录修改为人参果,然后并打印了,打印了所有的记录。 我们也可以使用思考语句删除数据库中的信息,它的语法格式如下,它是使用 delete from 表明, 后面跟着查询条件。对于如何删除数据信息,我们就不在这里举例了, 如果有同学感兴趣,则可以看书中的例子。

好,那么我们在这呢,嗯,再添加一个新的窗体, 叫做修改密码,好吧,小 fpad pwd 修改密 密码,一样的道理啊,在这给他,呃,小三,好吧,然后呢?账号是吧?账号密 密码密码密码是不是好粘进来?账号,然后,呃,现在密码是不是当前啊?当前 密码,当前密码。好,接下来是不是还有一个新密码呀? 新密码,新密码, 好,这里呢?是 t 太太刚 pw 第一好吧,好,然后我看这有没有啊,有没有心,有心是吧, ok, 这里是不是就是修改修改密码啊?好,来 把这个两个给他抛一下。 修改密码拖一下是吧, 这就好了,那么在这样我,我们修改密码,我们是不是可以在这啊,再复制一下是吧,粘一下这给他整一个什么修改密码,开吧。修改密码 好,双击是吧,然后我们是不是阿婆带她是不是阿婆带她, 然后是 pwd。 发膜的牛,阿布带它 pwd, 然后呢,发膜点锈单了个 ok, 好,双击进来了是吧,首先呢,我们要取到,嗯,我们这就就不验证了,好吧,就不验证那个密码和原始密码了啊,我们直接就做修改的功能了啊。账号 等于 past, 蓝宝的 past 的去 啊,最皮 w d d 等于泰斯特 pwd 是吧,点 tst 点俊 sj p w 一等于 past p w 一点 past 点吹,其实我第二个要不要都行啊是吧,好, 然后我们来写一下这个 sorry 语句怎么写呢?在这注视啊,记着注视,是不是单方注视就可以了?我把字体放大点, ctrl 加滚轮就可以自己放大啊啊 get 是吧,是修改,修改谁啊?是不是 uzi s uzi 是吧啊,赛他,然后 pasty 的对不对?等于好,等于新的值 v 二是不是账号啊?编号等于好,这就好了对吧?剪切 sj 收口等于收到二符号啊,好,来,这个地方是 pwd 一,记着啊,这个地方是 n o, 这是不是要运到哪一个呀?是不是萨克拉特哈尔派 xo 的阿布袋是吧,好,他是返回什么?呃,樱桃类型对不对?好 硬叉。 i e s ult, 等你完了之后呢,给他衣服是吧?瑞斯奥特带零啊,带零完了之后呢, 就是 mac 机 boss 要修新密码是什么对不对?修改成功, 新密码,是啊,新密码是什么?是不是这个 pw 一啊? pw 一,这里就,就这里,不能不能用那个战位服是吧,那个玩意,我这就是给他军还是 tr 开吧。到了符号, 新密码是是什么?二,对吧,好, p w 第一, ok, 这是不是好了呀,然后 s t 二,好,这就是。呃,修改密码, 好,我们运行一下,我们肯定是先到这是不是走,你修改密码,零零一,账号零零一是吧, 当前密码是一二三,这里呢?给他零零零点修改密码,新密码是零零零,是不是完了之后呢?零零幺零零零 登录成功,这说明修改 ok 了是吧,有没有问题?好,接下来我们来做一个添加,好吧,添加新用户,添加新用户呢?怎么办呢?我在这 复这个,好吧,登录这里呢,加个添加幸运货, 添加新用户, ok, 拉一下。那么添 家新用户呢?我们是不是要给他 a d d 啊? a d d uzi, 好,在这里呢,我们就给他 a d d u 字放是吧,添加一下,一样的老规矩,嗯,在这给他改成小三,缩小一点,我这里是不是就可以涂了。 直接把这给他复制过来啊?嗯,对吧。卡住 c 卡尔 v 好,往前一整,然后呢?在这是吧,好,复制一下,粘一下,把这个 给他干掉。这是不是添加呀?添加啊,添加。那么在 这个地方呢,双击进来是不是 a d d 是吧。 uzir fm fm f 等于六 id 有点爽是吧。布朗布店修单了,哥,记着啊,这都是模式窗地。在这添加。 添加新用户 啊。添加新用户 three 账号等于 past 账号点 cast 点 tomes two pld 等于 past pld 点 past 点。听好,我们刚说了,我们是不是还有个功能,这样做一下是不是检查这个用户账号是否可用是吧。啊?来,账号是否可用, 账号是否可用来出来。 好,这数就开了,再拉一下过来双击是不是也要取到这两个值啊?好,这是检查账号是否可用检查账号是否可用, 那么在这呢?检查账号是否可用,是不是搜扣语句啊等于,那么是不是查询这个,呃,谁啊?账号是否存在是不是就开了?好,倒点符号 呃,斯雷替特康腾特是吧,心儿让我们有事儿。威尔编号,正义编号是不是 就开了?好,得了,得到了值是吧。好,完了之后带着退步一提,等于小可爱,他害怕是吧。点退步 完了之后呢?接下来输入他一和零啊衣服 dt 点肉丝,然后中框中框是不是零啊?零 零 ctrlat 是吧。好,换一个 ctrlat 点 two end 三二 走。你是不是大雨淋就可以了?如果大雨淋是不是大雨淋就说明是不存在啊啊。 maccbox 点秀账号已存在。账号存在是不是就是我要把账号给他,干嘛清空啊? past 对, past 等于 是不是这样的就开了清空的,对不对?如果存在清空啊?如果存在则清空 账号内容吗? s, 那就账号可用吗?对不对?那就是账号可用。

来吧,展示 光棍。 this is the party! this is the party! pumpkin party! pumpkin party! pumpkin party。

你好,欢迎收看刘军编程,本节课程呢,我们来实现呃 dejango 将 python 网站开发框架,我们来实现的是呃 circling 数据库当中用户信息数据的一个查询,那么 用户信息数据的这个查询的话呢,我们还是仍然采用上一节课当中给大家介绍的 connection 这个啊 类,那么在这个类当中的话呢,我们本次啊将使用的是 c h o 方法啊,然后呢结合之前我们所学习的 x q 的啊方法,那么这两个方法呢,可以去结合起来,让我们能够查询到我们指定的这个数据。好了,那么我们马上来开始我们今天的这个课程, 那么我们主要的话呢,首先要掌握这个思路啊,查询的字这个思路,数据查询思路,首先我们要有的是什么呢?就是 数据库的连接,对吧?数据库的连接,那么这个数据库连接我们采用这个 connection 类啊,对吧? connection connection 啊类,那么这就意味着是默认连接这个 setting 啊, setting settings se t t t t i settings 点 p y 啊,文件配置中的这个 啊,数据库啊数据库,那么也就是说当我们一旦使用啊去获取他的有标的时候,他就会给我们去连接这里面的数据库,那么数据库连接之后我们应该是干什么呢?我们接下去不是要可以开始查询了吗?那查询的话,我们就要执行什么?执行 circle 与 语句,而这个搜口语句应该是属于什么搜口语句呢啊,是属于我们的这个啊, select 搜口语句,而执行 select 搜口语句,我们要通过的是 是啊,邮标的啊,应该是邮标啊,邮标的什么方法呢?邮标的这个 叫做 execute, execute 方法,对吧? e x e c u t 啊, e x e c u t e 啊, execute 的方法啊,那么一旦执,呃,那么执行的是啊,执行应该是 select 的一句,对吧?执行 select 啊语句,那么一旦执行了 select 语句以后,我们就可以将数据啊返回到我们的这个邮标对象当中,也就是这一次执行的这个啊, c 口语句的一个游标对象当中有我们的这个数据了,那么一旦有这个数据以后,我们就可以将这个数据啊通过一个方法来匹配出来了,也就是说这个时候呢就是获取数据啊,获取啊,查询到的数据啊, 那么通过什么来获取呢?就通过我们的这个啊,这个方式啊,这个叫做 fetch 啊, f fetch all 方法啊, f f e t c h o h o 方法啊,当然呢,这里面呢还有一些其他的一些方法啊,那么我们通过这个方法的话呢,比较简单,可以将我们搜索句所执行的所有的数据都可以一箩筐的给它拎过来啊,就比较方便啊, 那么在实际的执行的过程当中,我们其实是可以通过改变我们的 soccer 语句,对吧?然后来实现什么我们的查询到不同的数据,这个思路其实是非常灵活的,因此你掌握 soccer 语句啊, 是非常非常灵活使用数据库的一种方式啊,因此我在前面才会给大家先讲简单的这个啊, soco 语句,对吧,数据库的一个查询啊,正常改查,那么 呃,大家呢还我还是建议大家呢,先去学习我的零基础这个数据库课程啊,那么通过这门课程的学习,你会对数据库会有一个更加详细的了解啊。好了,那么一旦执行完成以后,我们就可以在后台这怎么样呢?就可以输出这个查询到的数据了啊?查询 到的数据,那么后台我们可以输出的话呢,那么我们也可以通过我们之前给大家讲过啊,这个将 后台的数据如何输出到前台的方法,我们讲讲过这个 template 对不对?可以通过 context 形式传递到前台,那么我们本期课程的话,主要是先围绕这个数据库的一个查询为主啊。呃,那么到 下期课程我们再来给大家进行不同形式的渲染啊,渲染的话呢,其实也有不同的形式啊。好,那么我们本期课程 马上来开始给大家做一个演示,那么我们首先的话呢,我们网站的来给它打打开啊,来给它打打开,打开以后我们可以看到我们的 views 方法啊,那么这个也是在我们之前的这个代码基础上面,我们再来给它进行 查询的一个方式的一个修改。那么我首先的话呢,你想想看,我们要有这个用户列表,一旦要有这个用户列表啊,我们首先应该要怎么样子的 啊?啊?用户列表,用户列表数据,对吧?那么用户列表数据我们要有的话,首先要有个页面啊,对不对?也就是说,呃,要有个页面, 有这个页面是什么页面呢?页面我们就是实际上就是使用的是 user list 啊,创建一下啊,创建啊,创建新页面,对吧?创建新页面,那么创建了新页面以后,我们就可以去 什么配置,配置页面入游,对吧?那么与什么关联呢?与这个,与这个我们的就是拍摄函数,函数关联啊,关联起来,那么关联起来以后我们就可以去执行了,为什么要这么做啊?这是,呃,事件驱动的机制吗?对吧?这就网站吗? 网站他默认啊,网站,哈哈哈,网站,网站他默认啊, 就是这个事件驱动的啊,事件驱动的,那么这个事件驱动我们其实就是我们的一个点击事件,或者说是访问到某个链接,事件本质上就是一个路由,对吧?就是一个路由 url 油啊, u i l 路由这上面啊?好的,那么我们现在来马上开始啊,马上开始,我们来新建一个页面吧,对不对?我们在我们的 这个 template 的这个上面呢,我们来新建一张我们的这个 html 的页面啊, user list, 而这个 user list 一旦新建完成以后,我们要把它放到我们的网站的,呃,它的这个上面的这个标题啊,让它有的话,我们应该怎么样?是不是要有一个之前的写的这个模板页啊? 对吧?而之前写的这个模板页的话呢,我们要要把它应用起来,其实就是奥特密啊,给大家做的这个,来给他复制粘贴一下,啊哈,对吧?然后我们再把这个上面的标题改一下,改成什么?用户列表,对吧?用户,用户列表,我们就用管理吧,对吧?用户管理吧。然后在这里面的话呢,我们就可以 写具体的一些用户信息了,在下节课的时候我们就可以给大家来展示了,对吧?那我们这个路由的话呢,我们就来通过一个链接来给大家呢,呃,这个通过一个链接来给大 大家链接,哎,这个链接是在哪里啊?我们要通过这个字,我们来看一下这个 index 啊,我们之前里面有一个,呃模板页,对不对?模板页是我们是呃接受通过这个里面也是一样的,我们的模板页使用的是 l j y bass, 对吧?那么通过这模板页的话呢?我们来呃,来来添加一个用户管理的信息啊, 我们在这最后我们就可以进去了,否则的话进不去啊,对吧?啊?有有地方可以进去啊,对吧?这个地方进去的话就是 user list 啊, user list, 对吧? user list 这样的一个页面,那么这个地方叫做用户管理 啊,用户管理好了,那么我们进去以后,我们来看一下我们这个页面啊,我们来刷新一下啊,那么就是这个页面吗?对不对?现在点进去肯定没有的,因为我们路由还没有配置,对不对?所以说他说页面找不到,那么我们来配置一下路由啊,所以说这个步骤其实还是相对来说比较多的,我们想 获取一个数据的话啊,那么我现在来配置路由,那么配置路由的话呢?我们使用啊,使用什么?我们我们我们就直接写吧,然后这个地方要加个逗号啊,我们要给他, 呃,这个列表,这个列表里面的话我们加个逗号啊,这可以写下一个元字,对吧?那么我们在这里面的话使用的是啊,就直接使用的是一个啊,一个 list。 好的, 那么我对应到哪里呢?对应到我们这个地方渲染的话,我们也使用需使用这个 user list 好了啊, user list 好,那么这个 user list 我们的这个页面啊,我们来进去,我们来先配置一个 user list e f u 的 list, 对吧? list 啊, i e 就用 e s t 啊 request, 我们写写好像还是挺多的啊,感觉是吧,哈哈哈。啊,我们在这里面,我们先呃 呃,随便 return 一一点东西吧。啊?我们因为肯定要渲染这个页面嘛,肯定要通过这个 render render 来进行渲 request 啊 request, 然后呢?我们执行的是一个 you the list 的点 h 添标,对吧?点添标,好,那么我们来看一下啊,这页面是否存在啊?刷新一下, 哎,刷新一下,已经存在,对吧?已经存在,也就说他已经执行到这个函数了,那么执行到这个函数了,我们现在就可以去在这个函数里面将我们的数据查出来,然后通过这个页面传递就可以了,对吧?那么我们现在来先查询一下啊。 呃,这个查询,我们首先的话,进入到这个页面以后,我们首先会有这个邮标对象,对吧?有这个邮标对象这个链接啊,那么这个链接一旦有了以后,数据库链接一旦有了以后,我们就可以直接执行什么烧烤渔具了吗?对不对?执行 execute 啊, soco 语句,这个 soco 语句就是啊,很简单,我们就先来这个 selecting from from you the info, 对吧?我们来执行这个 soco 语句,那么执行完 soco 语句以后,我们啊实际上这个数据啊,它会自动保存到这个邮标对象里面啊,一旦查询到的数据 会保存到有标对象当中,我们之前已经说过了,对吧?那么我们接下去就可以通过有标对象来匹配出来啦,通过这个 h f e t c h 啊 h o 方法就可以匹配出来了,匹配的结果我们可以把它输出来啊,比如说我们把它输出到 my user, 是吧? 对啊,输出到 my users, 对啊,输出到 my users。 那么输出到 my users 的话呢?我们就可以,哎,怎么样了?我们就可以,呃,比如说后台来给他打印啊, my users, my users。 我们来看一下啊,是否可以查得到啊?现在我们点击这个用户列, 首先这个是首页吗?对吧?所以我们点击这个用户列表啊,我现在这里面下面应该信息还没有,对吧?还没有啊,现在还没有,对吧? 清除掉啊,切过来,切过来,我们现在点击用户管理, ok 啊,已经到这个页面了,那么他就查询到了这个数据,大家可以看到没有啊?也就是说我们把数据已经拿过来了,那么这个数据是一个什么样的类型啊?大家可以看到它是一个列表,看到没有 啊?中国号里面呢是一个个原组啊,一个原组,我们可以查询一下他的一个数据类型啊, type 啊, type, 用 type 这个方法来给他查询,对吧? 哎,我们刷新一下啊,刷新一下,刷新一下,我们可以看到它是什么,哎,你看是一个 list 这个类型啊,对吧? list 这个类型,也就是说 pho 返回的是一个 list 这个类型啊,好,那么事件驱动啊,事件驱动我们在 这里面呢使用的是 fit o 方法啊。 fit o 方法。好,我们现在来给大家写一下这个实际的这个代码导,导入这个代码啊, fit o 我们写一下。呃,首先第一步啊,步骤, 步骤对吧?这个步骤的话,第一步的话呢,应该是,呃通过 execute, 对吧?应该是执行 circle 啊,执行 circle 的话我们是通过的是一个 execute 的方法啊,执行完成以后我们就是通过呃 facial 返回,对不对?返回,返回, 呃就是获取查询的数据啊,那么这两步啊,那么来分别来把代码给贴过来啊,把代码贴过来,我们一起来回顾一下,第一步的话,我们来执行的是 ctrl 对不对?然后数据库的连接是因为我们之前已经连接过了,我们在这最上面已经写过了,这样的话就可以不就不需要重复去 写了吗?对吧?啊每次都已经执行过这一条了是吧?这就是我们之前写在上面的一个好处啊,执行搜口诀, 呃好的,那么接应的是哪个色刻语句呢?是这条啊,是这一条 myself 啊,这个,呃 micro 点 execute selecting from music info 对吧? 这第一步第二步我们执行的是一个啊数据的查询,那么数据的查询的话我们使用的是一个什么呢? pho 对吧?我们在这下面啊,在这下面我们使用的是 pho 啊,执行数据的一个查询啊,一旦一旦把数据查询获取过来,他就会在这个啊买做对象里面啊。呃那么他的啊,他的直接会会返回啊,返回一个列表啊,不是说是在这个对象里面啊,应该说是通过 faceo 他直接就把数据结果给返回了,而这个是 数据的话呢,它本身一开始它就是在 maxso 里面,对不对?而一旦通过啊 fetch all 之后它就会把这个数据全部返回,返回以后大家注意啊,呃,这个 maxso 它里面数据就没有了啊,注意,一旦数据返回返回后啊, 呃,在在这个 micro micro so 啊啊中啊的数据就清空了啊,就清空了, 这相当于是一次的啊,是就一次性,那你待会输出的话就没有了啊,那么而且返回的这个类型啊,注意返回的数据类型是列表,对吧? 返回的数据类型是列表啊,也就是说是 list, 对吧?是一个 list, 就这个类型。好,那么我们已经拿到这个数据以后,我们是不是可以通过它来 来,呃,传递到我们的这个前台了,对吧?传递啊,传递也很简单,通过我们之前的这个课程,我们就可以通过这个 compass 第三个参数,对吧?三个参数,然后呢啊,我们来传递一下就可以了,比如说这个是 my use my users, 对吧?然后呢在这个把这个把这个 my users 拿过来就可以了啊,拿过来就可以了。好的, 那么前台怎么样给他显示啊?前台显示就非常简单了,下节课我们会把他这个数据啊更加的整理的好一点啊,我现在前台给他直接显示出来吧,好不好?要显这粗糙的显示出来,我们就通直接通过这个 my users 啊,这样的一个列表给他显示了啊, my users 好给它显示到前台。我们这节课反正就是给大家做出这个数据了啊,你看这个数据是不是就有了,然后呢我们通过 foru 句是不是就可以 把它拿过来啊?是不是?哎,那么本期的话呢,我们已经把这个整个的数据已经可以给他实现了啊,就是实现了我们的数据从后台到前台,这是我们学习的东西,但是我们注意的信息啊也非常重要啊。呃一旦我们的我刚刚说过了一旦我们买 这个地方 my feet o 这个地方我们的这个数据里面啊一旦我们的 feet o 以后 microsoft 这里面数据它就没有了也也就是说如果你下面再来输出一次 my feet o 它其实这个地方就会输输输不出来了啊 啊比如说我们现在再来输出一次看看他其实这个结结果他就会没有了啊,而且要刷新他下面会输出一个 not 啊,刷新一下刷新一下啊,你可以看到这下面输出的是一个空的一个列表对吧?空的一个列表啊 啊那么所以说这一点啊大家要注意啊,这点要注意好了,那么我们来回顾一下啊,注意的话就是 h o e f e t c h 啊 f h o 啊 f e t c h h o 方法只能执行一次方法只能啊返回一次,一次 返回一次啊。如果说你想要再次返回怎么办?重新再执行 exquit 对吧?啊那是是这样子的啊 好,那么这是我们的相关的如果啊要重新返回重新执行 execute 啊,那么这是我我就不多写了。好吧,那么我们呃学习到的东西我们再来回顾一下主体的话呢是什么东西啊?主体是呃利用 利用 circulate, 对啊,利用 connect connection 对不对? connection connection 类类的 execute execute 类的邮标,邮标的 execute 的方法 xq 方法啊,查询数据啊,应该来说是 查询数据啊,查询从数据库查询数据对吧?应该是从 circulate 数据库查询数据并输出啊,并输出 啊,返回,返回到变量到变量,对吧?最终就是在什么呢?在 h t m l 模板页渲染出来, 模板页,模板页啊,呃,这个输出对吧?模板页输出,那么具体的话呢,可以进行整理,下节课的时候我们一个是整理数据,另外一个的话呢就是我会给大家呃展示这个数据的一个整理啊,就是一个是他这个数据整理有 分成两个部分啊,一个就是后台的真理,一个是前台的真理啊啊,社交门门人就是这个,这个行行道道还是挺多的啊。好,那么我们本期课程的话主要给大家讲这些啊,下节课就是获取用户数据列表的一个渲染渲染和真理 用户数据的,呃,渲染和整理。好的,那么呃我的课程呢,就给大家讲解这些本期课程啊,那么这我的课程开发确实不容易啊,非常希望大家能够 啊。呃,就是为我鼓励啊,一键三连点赞鼓励,为我加油啊。那好的,我也会更加努力制作更好的教程。 ok, 如果说你喜欢我的课程,一定要订阅关注分享给身边的小伙伴,有问题的话我们随时在视频下方啊进行留言啊。呃,你本期课程大家好 好不好呢?哪里好呢?或者哪里不好呢?希望你的弹幕上面也能够打出来让我能够看到。好的,那我们本期课程就是这些吧,刘俊编程编程创造城市,小伙伴们,我们下期再见,拜拜。