00:00
来,下面我们要给大家简单的说一下,在Android里面去操作数据库的一些API,简单的看一下啊。首先第一个呢,是叫一个CI open help叫数据库操作的一个bound类,它其实是现在是一个抽象的。嗯,来也给大家看一下。看到我们来去找找看有没有啊,我呢需要去打开一个应用才能去找,嗯,好看下吸不下气,叫circle light open have,嗯。它是一个抽象的类啊,在这里面呢,会有一些方法是抽象的,我们到时候要去要去做他看的,要去实现它,嗯,那他既然说是一个帮助的类,那它能帮助我们什么事情呢?可以看一下。
01:06
首先呢,它有一个构造方法。这个构造方法里面有一个非常重要的东西,就是。这个类指的就是数据库文件名。啊,就是这样一个是啊。好,其他的倒还好,什么版本号这个东西大家不要太关注。下面有一个叫。这个按的方法我们用于干嘛了?创建表,比如你按开头的方法,我们一般怎么操作啊,回调啊,是个回调方法,那我们应该对它进行怎么处理呢?是不是重写呀,对吧,我们去重写这个方法并不调用,一再反复强调这样的事,重写这个方法用于创建表,那我是不是重写以后在方法体里面去接表啊,嗯,好了。
02:03
大家在想建表之前那个库是不是已经已经在了呀啊,或者还一个是我建表建几次啊,是建一次啊,诶那我怎么保证见一次呢?是不是按亏的方法只调用一次啊,那按亏的方法什么时候掉呢?是吧,也就是说数据库文件创建的时候就应该去创建什么是表啊,那也就是说数据文件创建的时候才去调用on create吧,那也就是说这个地方on create按什么create呀。这啊,什么东西呀。就是当当什么创建的时候对不对,当什么创建的时候,你可以把它理解成为什么,当输出文件创建的时候,就调用这个方法。
03:01
对不对。这个方法理解吧,不理解啊,刚才不在说我这个方法什么时候掉啊。数据库文件创建的时候掉啊,对吧,那你为什么,那我怎么去理解这个方法呢?你不要不用去,我现在说的就是大家不用去死背当当当什么时候创建,当什么东西创建的时候,就数据库文件创建的时候啊,你理解这个事,那就不用太记。啊,到什么时候执行呢。啊。好,下面。还有一个upgrade,这个upgrade是升级的意思。啊,用于版本升级更新,这个用的少啊,大家可以先暂时不用太管它啊,重点是上面的一个构造方法,一个是这个on create方法啊好,有了这个help对象,它还能帮我们去做一个非常重要的事。
04:03
得到连接对象。哎,还记不记得我们JDBC里面那个连接对象是什么类型呢?是不是connection呢?连接啊,有连接对象以后,连接对象在GDPC内能执行这个吗?不能,对吧,他要通过谁来去执行这个语啊,是不是statement呀,Prepared statement对不对?好。这个地方比较特别啊,这样一个对象,这个have对象,它能得到这个,它就是连接对象叫database这个。他也能去执行语句啊,后面我们可以看到啊。来,还有一个就它了,代表与数据库的连接的类。嗯。我们说看看啊,这这一个先要知道它的作用,它的作用和它的目标是代表与数据库连接类,那怎么样得到它的对象。
05:09
通过谁来的?是不是刚才我提供的那个那个对象啊,啊,这不就是他吗。不它呀,对吧,嗯,这个大家需要去知道啊好下面。他有这么多方法说明他能干啥事啊,是不是执行增删改查呀,这一个是执行增删改查,是不是都有对应的返回值啊好,Insert这个就不留意它返回了一个long类型。其实返回的就是什么呢?ID,我们ID是不是增长的呀,嗯,它返回了一个浪。啊,是把ID放为作为long类型返回的啊,下面有更新有删除,那这一个返回是什么意思呢。是它就是更新或者是删除的记录数。
06:06
到底更新了几条,删除了几条?好,查询查询返回一个科子,科子我们叫它什么呢?结果集或者叫游标对吧?嗯,这个里面是包含了所有查询匹配的数据啊,嗯。好,下面这里面有一个方法叫XTC里面传一个C,没有返回值,这是个啥呀。这就是执行一条语句。啊,可能是真山奶茶,也可能是见表。能不能见表啊,可以见表,是不是也是一条线鱼要执行呢,那我执行插入行不行,可以,只是什么时候会用这一个方法呢?就不在意返回值对吧,那返回值对我来说没意义,我不需要,那个时候我是不是直直接去做这个方法,嗯,好啦。
07:08
来,还有一个他。嗯,这个地方用来干嘛呢?是不是做数据库操作的事物啊,这个讲过了吧,啊,讲过就好啊,怎么开启事物这个地方呢,跟我们以前有点不太一样,我们以前是有个嘛开启事物。提交事务还有什么回滚事务是吧?Robot,那你看他有回滚吗?哪有回本事物?Robot白哪有方法呀,是没有,他只有开启事物,结束事物。在结束事务的时候,如果在之前你设置了事物是成功的,他就会提交。如果你没有设置,那就自动什么回稳,诶他这种做法也挺好。
08:01
嗯,跟我以前有点小不一样。好。下面。他这一个呢,是一个,嗯,忘了写一个东西了,应该写一个,它是个静态的方法,这个我们后面会用到,就是直接通过这一个。类啊类名去点打开一个数据库连接。啊,这个我们后面会用到,大家暂时的先不用管它,我们后面用的时候再跟大家说啊。好,这里说的是CI database下面还有一个科,这个科者呢,他跟我们的以前学过的两个类型有一点类似,一个是result set。啊,Result set这个是我们TBC里面的,是不是结果集啊,它优越的类似于谁呢?我们在Java基础里面的。迭代器还记得吧,嗯,跟他们都有啊,一定类似性,就操作的时候很类似。
09:07
他呢有一些方法。首先第一个方法叫get count。其实你看名字,你应该能推测出来起什么作用啊,就是我一定我这个查询到底查询出来了几条记录啊,对不对啊,匹配的记录总数啊下面。叫move next什么意思呢?就是下一道这里面这么多方法,来我跟大家说一下,它这个方法就是说查询结果集,它是这样的啊,这样的这是个容器啊,它里面呢,有好几条数据啊,好几条数据。这一条一条的数据啊,每一条数据里面是不是有好几个数据啊。那一条数据它是不是有name,有ID,有A对一系列的字段的值吧,嗯,它是这样的,嗯,它相当于有点像一个链的结构,首先呢,油标或者说光标在这个里面。
10:07
当前他能得到数据吗?不能对吧,得不到数据,他得先什么呢?Move to next移到这里,移到这里取它左边的数据。能理解吧,嗯,取它左边的这条数据。啊,而且它这个目的是不是要返回值啊。是吧,好你来看啊,那什么时候返回处呢,就是我一移,我当我他其实先是判断右边有没有数据。如果右边有数据,那就返回处,返回的是true,并且移到下一个位置就可以取它,下面是不会一直往下移啊,一直往下移,好一直往下移,此时能得到数据吗?能得到能这个不得到了吗?好,下面我再移先,我一看右边有数据吗?没有没有直接干嘛。
11:05
返回boss。没有必要继续了,下面都没数据了,对不对。能听懂吧,好,这是时候摸起来,下面就一个get,诶,这里面为什么叉叉叉呀。是不是有类型的概念呢?类型的概念下面有一个啊,非常重要的东西,叫column index。叫字段的下标。什么个意思呢?大家在想啊,我这个里面每一个框都是一条数据,一条数据,其实里面假设我的那个字段啊,有两假设有两个字段吧,一个是下划线ID,一个name可以吧,我就这么简单的一个表。大家想这里面两个数据,那我到底取哪个数据呢?我是取ID呢,还是取name呢?我在写select语句的时候,是不是要以有可能写select的心是吧?有可能写LA的下回ID name吧?我有没有可能写select的name?下文ID有没有可能?
12:12
也就是说什么个意思,大家看到我在这里面写一下吧,看这里我这是一个查询语句是吧,就查询得到了一个结果集。我这一取,假设我要取ID,我是不是得到一个科的了?好,下面我怎么取。是不get方法好get get啊,我要我假设要要去取下回ID,你说怎么写是不是get in呀,好get in,关键他要传一个下标。嗯,下标是个什么意思呢?就是展示在这个里面的顺序。嗯,就在这里面,你写的时候的顺序,你要新的话,是不是他根据创建的时候那个顺序排列啊,我能不能自已定义顺序。
13:04
啊,我不能定义顺序吗?当然可以,比如说我先写name对吧?啊,这个写杠下划线ID,这个我写birthday,我估计写的顺序比较凌乱啊,再写一个是不可以啊好。来,我现在去写,这么写一下是这样一个顺序吧,那我要写一个get in,零得到的是什么啊啊,该不能写int了,对吧?再写int就挂了,写一个实句,大家看此时那我得到的是不是内的值啊,能理吗?啊,那我要想去得到那个三维的值,你说我怎么写?Get,首先来说是个大对吧,大写几啊,有234都整完了,有没有整一的是不是三呢?下边从零开始嘛。
14:10
嗯。啊,重点还是理解,其实理解了就不用怎么记啊,很很快就能写出来,好,所以说的是这一个,大家需要去关注一下啊。嗯,后面呢,我们就是一些测试用例,我把它先停。
我来说两句