UI第二组与数据库对接时遇到的问题记录

时间:2021-04-16 21:43:36

      此为组内某一位做UI的同学的随笔。

   之前的app由于没有加入数据库,所以每次重新启动里面的东西都会回到初始状态,即不能保存内容。我们的数据库小组已经很棒地基本完成了数据库的工作,于是我就准备加入数据库看看效果。

   其实这个对接和之前结对项目UI和core对接很像,我不需要知道数据是怎么存的,我只需要按照他们的规范,调用他们提供给我们的函数。

   我准备从写日记的timeline界面这个地方开始加入数据库。首先我们之前Diary有一个类,他们数据库也有一个类,第一步就是把我们代码里面用到的Diary类改成数据库用到的Diary类。主要的不同就是他们对日期的存储直接用了Date类,而我之前用的还是比较繁琐的一个个int或String型变量代表年、月、日、星期几等。然后我就去学习了Date类的用法。这里也不描述了,然后由于不熟悉,这里也遇到了一些问题,当然最后还是解决了。

   还有就是一个由于我开始的代码中初始化里面有一个insert操作,然后我习惯性的写几行代码就运行一下,然后就不知不觉insert了好多好多diary,这还不是关键,关键是我往下滑,recycleview滑着滑着就闪退了QAQ。经过了各种debug(看他报的错或者用日志打印或者最初级的控制变量法注释代码2333)。(比较长的一段时间后)我发现是给recycleview的item设置日期相关的值时,由于我之前有的insert的Diary没有setDate,然后就类似于c语言对空指针做了操作,程序就崩溃了。所以初始化很重要很重要!!

   再就是List的一个问题。我之前定义了一个List之后直接把函数返回值赋值给他,结果就出现了各种问题。然后先给这个list实例化(new ArrayList<>())后,这个问题就解决了。这也涉及到Java的知识,因为到现在对java还都是处于用的时候再去查的状态,很多东西都不是很清楚,所以代码运行就会出现各种问题,bug也不知道出现在哪里。

   在我遍历List在数据库删除里面的元素时,总是出现删到一半就崩溃的情况,不过多运行几次也能全部删完。然后这个问题我还没想清楚是怎么回事。。。

   实际上好像还不止这么些问题,但不管怎么说,至少UI和数据库在某一个地方合上了。万事开头难,我相信慢慢的就会越来越顺利的。

                                                                                                            2018.6.2  20:00