此为组内某一位做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

UI第二组与数据库对接时遇到的问题记录的更多相关文章

  1. 完美解决VS2003.Net fatal error LNK1201: 写入程序数据库“.pdb”时出错

    我的开发环境是Win7旗舰64位+VS2003.Net,经常卡pdb错误,文末给出一个完美的解决方案和一个懒人补丁包.问题描述如下:在重新编译的时候,经常报错: fatal error LNK1201 ...

  2. 第二章 Oracle数据库应用

    第二章   Oracle数据库应用2.1 表空间和用户权限下管理    2.1.1 表空间        2.1.1.1 分类:            永久性表空间            临时性表空间 ...

  3. sql server: 数据库备份时出现-operating-system-error-5拒绝访问

    本文转自:https://blog.csdn.net/ibsfn/article/details/80770855 sql-server 数据库备份时出现-operating-system-error ...

  4. websocket实现数据库更新时前端页面实时刷新

    websocket实现数据库更新时前端页面实时刷新 javaweb 目录(?)[+] userjsp ManagerServletjava 如题,实现以上功能,我知道主要有两大种思路: 轮询:轮询的原 ...

  5. PBOC金融IC卡,卡片与终端交互的13个步骤,简介-第二组(转)

    四:脱机数据认证-可选终端进行脱机数据认证来,认证卡片.记住:对于某个事情,终端与卡片谁单独也说了不算,要二者都能干才能干. 终端依据卡片(AIP)和终端(终端性能)的支持情况,决定是否使用及使用哪种 ...

  6. Visio 2007中进行数据库建模时如何显示字段类型以及概念名称

    关于在VISIO中进行数据库建模时如何显示字段类型,以及注释的 1 如何显示字段类型:   在visio菜单上--->点击数据库--->选项--->文档    打开后选择表这项,在上 ...

  7. IE6/7/8中parseInt第一个参数为非法八进制字符串且第二个参数不传时返回值为0

    JavaScript中数字有十进制.八进制.十六进制.以"0"开头的是八进制,"0x"或"0X"开头的是十六进制. parseInt用来把字 ...

  8. Access 中数据库操作时提示from子句语法错误

    问题:如果在Access 中数据库操作时提示from子句语法错误原因:语句中某一单词为Access中的关键字.如:select * from user.其中user就是一关键字.解决:用中括号[]将其 ...

  9. Oracle-11g 数据库启动时,报错"ORA-01092"及"ORA-18008: cannot find OUTLN schema"

    适用情形: Oracle-11g 数据库启动时,出现类似如下错误. ORA-01092: ORACLE instance terminated. Disconnection forced ORA-18 ...

随机推荐

  1. Google Chrome Native Messaging开发实录(二)Chrome Extension扩展

    接上一篇<Google Chrome Native Messaging开发实录(一)背景介绍>的项目背景,话不多说,有关Chrome Extension介绍和文档就不展开了,直接上代码. ...

  2. C++学习知识点

    所谓的学习,知识只是一部分,理解知识是如何被抽象和提炼的过程,才是更重要的 1.c++代码里面的\(反斜杠) C语言的宏要求只能在同一行,是不能跨行的.这里的反斜杠就是告诉编译器,我这里虽然换行了,但 ...

  3. 【转】28个Unix/Linux的命令行神器

    下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的.这些工具都非常不错,希望每个人都知道 ...

  4. Solidity之mapping类型

    映射是一种引用类型,存储键值对.它的定义是:mapping(key => value),概念上与java中的map,python中的字典类型类似,但在使用上有比较多的限制. 一.mapping定 ...

  5. PTA (Advanced Level) 1004 Counting Leaves

    Counting Leaves A family hierarchy is usually presented by a pedigree tree. Your job is to count tho ...

  6. SpringBoot入门 (十一) 数据校验

    本文记录学习在SpringBoot中做数据校验. 一 什么是数据校验 数据校验就是在应用程序中,对输入进来得数据做语义分析判断,阻挡不符合规则得数据,放行符合规则得数据,以确保被保存得数据符合我们得数 ...

  7. vue源码之抽象dom树

    一.抽象DOM树 使用过vue的朋友应该都知道,vue使用的是虚拟DOM,将DOM抽象成一个以JavaScript对象为节点的虚拟DOM树,以VNode节点模拟真实DOM,可以对这颗抽象树进行创建节点 ...

  8. C#Redis初识

    前面博客写了nginx负载均衡,大致了解了下nginx,不过这都是2016年的,2017年的计划也列了,重要的是执行,最近在看RabbitMQ和redis,由于今天和小伙伴们一起去聚餐了,回来的比较晚 ...

  9. SQL Server “复制”表结构,创建_Log表及触发器

    实例效果: 实现表数据的增修删时,记录日志. 1.“复制”现有表, 创建相应的_Log表: (注意点: 通过select union all 的方式,避免了IDENTITY 的“复制”,即如果原表有 ...

  10. Lightning Chart 8.4版新功能

    LightningChat V8.4版在如下功能上做了改进 边距 缩放功能 Legend box 的自动定位 正投影 相机orientation与rotation系统 全新3D 坐标空间转换器 Poi ...