00:00
啊,下面我们就要准备去测试了,来看一下,这是我们的一个完整的测试UD啊这里面呢,就对数据库进行创建呢,更新呢,真删改查,还有事物的测试。来吧,干活啊,说了这么干了。来还是用我们前面的那个工程。在这个里面来看啊。比较快一点,我们有一个。Main里面呢,有它来写一下是大牌,对啊,此时呢,我们是测试的数据库存储。叫sul数据库存储。那那我这个里面就写一个非常简单的DB activity,我把这个DB呢,Activity给他创建一下。
01:10
右键。一个other activity next。老李,Finish。好了吧,好了啊,来。把它点一下。啊OK,来这个地方呢,做测试呢,需要先把布局给它做一下。布局这我都不想问了啊,直接拿过来。这个地方我还分为两个部分,一个是布局,这个布局里面是很多button,每一个八呢,都会有一个点击的回调是吧?啊再把这个回调方法。
02:06
拉过来,这都不是大家能力范围之外的是吧?来看一下。把它呢写在这上面,就诶没有复制下来。看下C看见V看下C加O好了,来准备一个一个来做啊,首先呢,我们要想办法去嵌库见表。嗯,那既然是监控建表,前面我们说过了,要有一个工具类,帮助类,不能说工具类啊,是我们的一个帮助类,就它那它是一个抽象类。我们得是不是写它一个继承的一个实现了来做一下。六一个内,我们叫一个DB去继承于open。
03:06
走,你。好,此时此刻,包兔。我们来看一下。点一下,他让我去写一个构造方法,呃,为什么让我去写这个构造方法呢?因为户内没有什么无参的构造方法是吧?好,这一上来就有好几个参数。我们可以过来去看一下这一个,第一个不用管它啊,这个是我们常见的第二个内。说是什么东西,这一看你就知道是不是数据库文件名呢?好,下面第三个叫科着factory游标的一个工厂,看这个我就很爽,Long forport是吧?他一旦说浪,那我十有八九要写浪啊。这是比较简洁的方式嘛,对吧,好,下面一个就是什么呢?版本啊,这个版本号呢,它是存在数据库文件里面的啊,下面从几开始,从一开始对吧?嗯,那在这个地方啊,看到我。
04:16
啊,我可以把它把这两个给它去掉。嗯,这两个来动态的船,这两个是个死的,它是个空对吧,而这一个呢。数据库文件名是吧?嗯,那我要建一个数据库文件名,数据库文件名啊,你就已经想到了,那既然说了我就写吧。好了。这样整好了吧,好,下面就这两个方法了,嗯,主要来说它先你要知道它什么时候调用,有几个问题大家要回答啊,它是个回调方法,这个我们知道不用强不用强调啊,我刚强调是什么时候都要用,对吧?嗯,这是一个问题,还有一个问题就是用我们在这个方法里面做什么好,先来回答第一个问题,什么时候调用,我们刚才前面说了,当什么时候创建的时候,谁创建的时候,对吧?对,当数据库文件创建的时候,创建时调用,那也就是说有几次啊,是不是一次啊。
05:45
嗯,好啦。下面在这个方法里面我们做什么呢?见表这是很正常的,对吧?嗯嗯,建表好,除了建表还有一个事情有可能做啊,只是说可能性小一点,报插入一些初始化数据,所以你有表以后,有的应用一上来是不是就有数据啊。
06:16
啊,如果它本来就有一些默认数据,那你是不是要插进去,嗯。所以这个呢,稍微要少一些,见表是肯定要见的。没问题吧,好,那行,我们来就来讲呗,要见表,是不是要执行建表的语句?嗯,来,先把表语句写出来,我们来写一个简单的啊,来,Create table。啊,来一个来一个什么呢?Person吧,这这一个最简单的person好它呢首先肯定会有组件是吧,一般组件都这么写。是不你了,拿个来下面来至少两个,一个name name呢啊我下类型对吧,还有一个H年龄特类型可以吧。
07:13
嗯,这样就搞定了来。我们先测试一下,看看行不行,就先能确保你这个C语句是对的走。是不可以,嗯,我们家创建这样一个表,有这样一个SL语句啊,也就是说我是不是要去执行这个SQL语句去建表啊,就它呗,嗯,那下面的事情就是要把它呢,给它格式给整好就行啊。最后一下好了吧,好,那谁来去执行这个这个鱼呢。是不是DB呀,这个DB我们说过了,它代表什么。
08:03
是不是与数据库的连接啊,就相当于connection,同时它也相当于同时是statement,对吧,因为它可以去执行C语句。可以了吧,嗯,这是说的是建表啊,下面一个问题啊,就是我们可以去做一些插入一些初始化的数据可以做啊,试一下来,但此时我们是不用关心什么ID返回值的,对吧,直接就来一个。执行C写插入语句,直接写insert into to表接着哪些字段呢?Name age,接着写value,写呗,单引号to姆啊,汤姆一吧。好,下面A11。
09:01
对吧,差三个吧。他妈死了。看不33就可以了,嗯,好这个行了,而这一个它是当我们的版本有更新的时候啊,调用当数据库传入的数据库。版本号大于数据库的版本号十调用啊。用一版本的升级,那这个呢,用的少啊,我们在这里面就写一个打印输出,让大家看一下就行啊,来一写一些打印信息,到时候能看到啊,有没有执行好了,大家看这地方什么意思。
10:14
旧版本是不是老的版本和什么新的版本,嗯,好来好d have已经写好了,我们来在这上面呢,写一个小注式,是数据库操作的帮助类,写好了,好。下下面来看啊,这写好了以后,他就表就创建了吗?库创建了吗?这没有。啊,大家看,现在我们要点击它,想办法去让库和表建立起来。啊,这个时候啊,我们是不是要用那个对象啊,啊用的对象怎么用DB have对象是不是它这个对象吗?另一个D还有对象传。
11:06
This,好,传一个版本号,这个至少最小细节一,你说这样他创建那个数据库没有。嗯,对吧,来我这个地方啊,我写一个注释啊,写一个提示。创建数据库。我不写成功,这个成功起来是容易出问题的,那谁知道有没有创建,我就说创建数据库,至于成不成功,我们自己得去看。现在我们来看啊,我就在内存里面搜集在创建一个对象吧,现在我连了吗。我我尝试去连接了吗?去连库了吗?没有吧,也就是说你要尝试连库,是不是获取连接才是尝尝试连接数据库啊,你来看一下,我们这么做一下,他会不会去建库建表。
12:10
好啦,来试一下啊。我点一下数据库存储,点开吧,点啊创建数据库来。首先一看就没有什么是没有输出啊啊,这是有点怀疑,他可能没有创建。接着。我们要验证一下,验证其实非常简单。是吧,有吗?是没有哇,没有哇。为什么没有呢?其实非常简单,你根本就没有去连那个,尝试去连那个数据库吧。那你没有去尝试,连你是不是就没有做检查呀,也就说你想啊,这个地方我们前面看这里,看着我们的DB开口。
13:00
是一个什么呢?这地方指确实是指定了数据库文件名。那什么时候才会去创建数据库呢?对吧,这个地方就有一个问题,什么时候才会创建数据库文件。什么时候才会上线?正面有两个条件,第一个肯定是不存在。这个文件本身不存在吧,啊不存在,它存在就肯定不会创建了吧,文件不存在啊写一下。还有什么?还有一个条件,就是文件不存在就一定会碰见吗?那也不一定。第二步。就是尝试去连接,当连接数据库时啊,你要去跟数据库产生连接时,你发现哦,数据库文件不存在,那我是不是得创建了。
14:02
这很正常的一个逻辑嘛。嗯,来,那我怎么样才能让他痛你呢?怎么样才能让它创建起来?大家看我在这里面是不是要获取连接才行啊,大家看啊,我在这里面叫获取连接,怎么获取呢?DB help.open哎,不对,叫什么get是吧?这里面get呢,它有两个方法能获得连接,一个叫reasonable database。一个叫,这有什么区别呢?啊,一般情况下面是没有区别的,就正常情况下面没有区别。什么时候才有区别呢?当你的空间不够了。就你存储空间不够了,就我们是不是手机内不是也一定的存储空间限制啊,当存储空间不够时,如果你是get readable。
15:06
那你就不能插入了。你执行插入就没有效果啊,当你是变成writeable database的时候,如果空间已经不能插入数据了,它你再插入它就爆泡异常。就是在出问题的时候,他的处理方式不一样。一个是误抛异常。也肯定最终肯定做不了,肯定也插入不了数据,对吧,因为空间不够了嘛,你插了数据插不进去。插不进去怎么处理呢?如果是read。你就没反应。如果你是re。他跑机场。但是对于我们现在的手机来说,基本上不会出现这种情况。因为空间是基本上是够了,没很少很少去出现这种情况啊。那我们呢,实际上是用哪一种方式,其实都是没有问题的啊,我习惯用这种方式啊。
16:08
去得到一个连接database啊,打家看啊,那我就可以了,大家看到有了这个位置,我也不用它啊,我就得到这个对象。甚至你可以不定义,都可以返回这么定,只要我去获取连接,那此时它就会检查数据文件在不在吧。嗯,来试一下吧。Donny。观察一下它啊,看看有没有变化。走。点。是不是打印呢,这不已经有输出了吗?啊,那此时看一下路径是有了没有问题,这样我们就是做了一个。
17:00
创建库、创建表的工作。啊,下面呢,简单的把这个更新也跟大家说一下。嗯。大家看啊,我这一次我要更新,首先还是得去创建这个dp have对象对吧,那此时我要传一个更大的一个版本号啊,譬雳我传一个啊,你说现在它会更新吗。不会对吧,你现在根本就没有去连那个数据库文件吗?那个他当前的数据库文件的版本是不是一啊,你只有连才能知道吧,你要不连那你不可能知道。你怎么办呢?跟上面一样的。是不是尝试获取连接呀,此时才会去对来试一下,我们看看啊,看看行不行。这只是叫更新数据,好,我们来看一看。
18:09
可不可以啊?试一下才知道,来点一下它,好,我把这个日志输出了给大家呢,看着。给它给清掉一下,好点一下。是不是更新了呀,啊好了,这样我们就实现了一个基本的数据库文件的创建表的创建啊,数据库版本的一个更新啊,就更新的这一部分呢,大家可以适当的啊,放放的都行啊,不是特别重要啊。
我来说两句