数据库接口使用示例

考虑到我们的接口文档可能不是很清晰,昨天对接的时候也发现UI人员对我们的接口逻辑不太理解,所以这里写几个典型范例。虽然对接也快对接完了(逃,但是这样至少免得以后忘记了。

(注:这里的代码都测试过,放在HeartTrace\app\src\androidTest\java\com\example\dell\db\examples\中。持续性更新。)


几个基本原则

任何新建的对象,在insert之前,是不会到数据库里的!!!!!!不管怎样都不会!!!!!!!!!

任何已有的对象,在修改之后,如果不update,修改也不会被更新到数据库里!!!!!!!!!不管怎样都不会!!!!!!!!!!

只有通过getAll, getByRestrict, getAllLabel等方法获取的Diary Sentence Label Diarybook Sentencebook对象才指向数据库中的一个表项,直接new的会被认为是一个新的表项!!!

注:

Diary要求:text(日记内容)可以为空,date(日期)不能为空,diary book(日记本)可以为空(TODO:这个以后肯定会改成不能为空的!)

Sentence要求:text(日记内容)可以为空,date(日期)不能为空,sentence book(瓶子)不能为空

Diarybook要求:name(名字)不能为空,且彼此不能重复

Sentencebook要求:name(名字)不能为空,且彼此不能重复


获取、释放DatabaseHelper

方法1:

        // 获取DatabaseHelper helper = new DatabaseHelper(context); // 这个context视情况而定,可能是this或者getApplicationContext()// 释放helper.close();

方法2:

        // 获取DatabaseHelper helper = OpenHelperManager.getHelper(context, DatabaseHelper.class); // context同上// 释放OpenHelperManager.releaseHelper();


目录

Example 0. 将一个新的日记插入已有日记本,并插入标签
Example 1. 通过名字判断某个瓶子是否存在;如果不存在,则新建这个瓶子。并将新建的小纸条插入这个瓶子
Example 2. 通过单个Label查找所有的Diary
一些常见的错误操作


Example 0. 将一个新的日记插入已有日记本,并插入标签

前提:diarybook是一个已经插入数据库的日记本,helper是已有的DatabaseHelper

        Diary diary = new Diary("hiasjfhlaf");diary.setDate();diary.setDiarybook(diarybook);diary.insert(helper);Label label1 = new Label("label1");label1.insert(helper);Label label2 = new Label("label2");label2.insert(helper);diary.insertLabel(helper, label1);diary.insertLabel(helper, label2);List<Label> list = diary.getAllLabel(helper);for(Label l : list) {Log.d(getClass().getName(), "testExample0: label " + l.getLabelname());}

如果想要对已有的diary进行insertLabel操作,其实完全同理。


Example 1. 通过名字判断某个瓶子是否存在;如果不存在,则新建这个瓶子。并将新建的小纸条插入这个瓶子

前提:helper是已有的DatabaseHelper,bookName是已有的String。

        Sentencebook b = Sentencebook.getByName(helper, bookName);if(b == null) {b = new Sentencebook(bookName);b.insert(helper);}Sentence sentence = new Sentence("adfjanvnavop");sentence.setDate();sentence.setSentencebook(b);sentence.insert(helper);

如果想要通过名字获得某个Label,假如不存在就新建Label,代码同理。


Example 2. 通过单个Label查找所有的Diary

前提:helper是已有的DatabaseHelper,label已经在数据库内(这个很重要,不然会报错的)。

        List<Label> labelList = new ArrayList();labelList.add(label);List<Diary> d = Diary.getByRestrict(helper, null, null, null, labelList, true);


一些常见的错误操作

对于Label Diarybook Sentencebook这三个要求名字不能重复的类,如果重复插入名字相同的对象肯定会崩溃的。


另 关于出了问题怎么办

如果是和数据库有关的错误,请立刻联系数据库人员,不要试图自己瞎jb调!

把一小段代码发过来有时候是有用的,但有的时候是没用的。比较好的方法是把整个工程文件弄过来,然后告诉数据库人员如何复现情景,因为数据库人员 真 的 不知道你们点哪个键怎么跳转,怎么才能触发错误……

当然最好的方法是带着电脑,跟数据库的人面♂调

问:如果现在有一个错误,但是三个写数据库的人都不理我怎么办?

答:买个西瓜/冰淇淋,到空调房里看电影或写作业,直到写数据库的人回复

或者,如果水群在线只是不想理你的话,可以提出给水群买个奶茶w

转载于:https://www.cnblogs.com/USTC-CC/p/9154712.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python pip gpl_python pip怎么更新包

1、pip下载安装1.1 pip下载进入https://pypi.python.org/pypi/pip&#xff0c;下载 .tar.gz压缩包1.2 Linux安装pip# tar -xzvf pip-1.5.4.tar.gz 解压# cd pip-1.5.4 进入解压文件# python setup.py install 安装1.3 升级pippython -m pip install…

Leetcode--78. 子集

给定一组不含重复元素的整数数组 nums&#xff0c;返回该数组所有可能的子集&#xff08;幂集&#xff09;。 说明&#xff1a;解集不能包含重复的子集。 示例: 输入: nums [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 思路&…

人工智能皇冠上的明珠:自然语言处理简介、最新进展、未来趋势

来源&#xff1a;图灵人工智能 编辑&#xff1a;TJUNLP 自然语言处理&#xff08;Nature Language Processing&#xff0c;NLP&#xff09;被誉为“人工智能皇冠上的明珠”&#xff0c;一方面表明了它的重要性&#xff0c;另一方面也显现出了它的技术难度。本文整理了自然语言…

realloc 用方法

realloc 用方法 void* realloc(void*, n) 根据n的大小&#xff0c;如果n比较小&#xff0c;就沿用原来的内存地址&#xff08;也就是返回的地址就是原来的地址&#xff09;&#xff0c;在原来地址的内存空间的最后面&#xff0c;加上n大小的内存空间&#xff1b;如果n比较大&am…

Leetcode--90. 子集Ⅱ

给定一个可能包含重复元素的整数数组 nums&#xff0c;返回该数组所有可能的子集&#xff08;幂集&#xff09;。 说明&#xff1a;解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2], [] ] 思路&#xff1a;相比第78题&…

Yoshua Bengio:深度学习的未来需要“探索高级认知的归纳偏置”

来源&#xff1a;AI科技评论 编译&#xff1a;Mr Bear本文介绍了Yoshua Bengio及其学生Anirudh Goyal近期发表的一篇论文&#xff0c;该论文围绕“归纳偏置”概念&#xff0c;展开了对当下人工智能研究现状的讨论&#xff0c;并提出了富有启发性的观点&#xff1a;不同的深度学…

毕业季

真高兴。 一个懦弱了大学四年的人&#xff0c;竟然破天荒地跑去跟喜欢的女孩子表白。 他依然害怕知道结果&#xff0c;但他不后悔。 转载于:https://www.cnblogs.com/can-i-do/p/9164173.html

头发剪短了要快速生发_怎样生发效果最好最快?四个方法快速长出头发!

脱发问题导致很多人头发稀少、头发细软油腻&#xff0c;这些症状&#xff0c;让患者时常感到十分的痛苦&#xff0c;因为他们每天都要面临被调侃和取笑的尴尬&#xff0c;不仅个人形象全无&#xff0c;更是饱受严重的自卑心理&#xff0c;甚至因为脱发问题&#xff0c;总是给人…

AI求解薛定谔方程,兼具准确度和计算效率,登上《自然-化学》

来源&#xff1a;机器学习研究组订阅号即使并非物理学界人士&#xff0c;我们也对薛定谔这个名字并不陌生&#xff0c;比如「薛定谔的猫」。著名物理学家埃尔温 薛定谔是量子力学奠基人之一&#xff0c;他在 1926 年提出的薛定谔方程&#xff08;Schrdinger equation&#xff…

老鼠喝药水

已知有11瓶无色无味的药水&#xff0c;其中有1瓶有毒并且其他10瓶无毒&#xff0c;喝了有毒的药水后会在23个小时之后的一个小时内毒发身亡&#xff08;死亡时间在1个小时内随机&#xff09;。现在有4只老鼠&#xff0c;如何在一天之内(第二天)找出这瓶有毒的药水&#xff1f; …

整个trick

数据输入方面:1.image pyramid 图像金字塔.目前代码里是先选取一个scale,然后在每个GPU上按照scale读图片,相应的gt也更改."scales":[440, 520, 600, 680, 760] 使用的是短边的缩放到的尺寸,还用个maxsize限制了你的scale必须小于一个值 wk的代码和原本的sensenet很大…

redis修改端口号后还是占用6379_Redis分布式缓存分布式集群搭建

当你试图解决一个你不理解的问题时,复杂化就产成了。—Andy BootheRedis集群安装部署Redis是一个运行在内存的非关系型数据库&#xff0c;因为其速度快(效率高)&#xff0c;支持数据的持久化(安全)&#xff0c;事务操作的原子性(所有操作的原子性)&#xff0c;使得其在高并发场…

千禧年大奖难题之始与未终

来源&#xff1a;数学文化撰文&#xff1a;Arthur Michael Jaffe、薛博卿“千禧年大奖难题”的诞生千禧之际&#xff0c;万象更新&#xff0c;数学界的柔风细雨中惊响起初夏的雷鸣。七个重要的数学问题&#xff01;七百万美元的巨额奖金&#xff01;克雷数学研究所公布的大奖难…

Leetcode--120. 三角形最小路径和

给定一个三角形&#xff0c;找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如&#xff0c;给定三角形&#xff1a; [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11&#xff08;即&#xff0c;2 3 5 1 11&#xff0…

个人做的一些小工具分享

RCTRL键位替代鼠标右键 检测断网休眠工具 单机截图转载于:https://www.cnblogs.com/toumingbai/p/9166443.html

linux mysql 5.6.14_CentOS 6.4下编译安装MySQL 5.6.14

配置用户MySQL启动成功后&#xff0c;root默认没有密码&#xff0c;我们需要设置root密码。设置之前&#xff0c;我们需要先设置PATH&#xff0c;要不不能直接调用mysql修改/etc/profile文件&#xff0c;在文件末尾添加PATH/usr/local/mysql/bin:$PATHexport PATH关闭文件&…

全世界最前沿的125个科学问题

来源&#xff1a;世界先进制造技术论坛在庆祝Science创刊125周年之际&#xff0c;Science公布了125个最具挑战性的科学问题。了解前沿科学研究方向&#xff0c;对你的成长或许有所帮助。简单归纳统计这125个问题&#xff0c;其中涉及生命科学的问题占46%&#xff0c;关系宇宙和…

Leetcode--215. 数组中第K个最大元素

在未排序的数组中找到第 k 个最大的元素。请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k 4 输出: 4 说明: 你可以假设 k 总是…

解读阿里官方代码规范

2017年开春&#xff0c;阿里对外公布了「阿里巴巴Java开发手册」从头到尾浏览了一遍这份手册之后&#xff0c;感觉很棒。虽然其中的某些观点笔者不能苟同&#xff0c;但大部分的规范还是值得绝大多数程序员学习和遵守的。 笔者将对这份代码规范中的一些细节做一些解读&#xff…

知识图谱下一站:认知智能

来源&#xff1a;华东师大ICA本文系首届“认知智能”研讨会讨论部分会议纪要。首届“认知智能”研讨会&#xff0c;由华东师范大学计算机学院主办&#xff0c;于12月8日在华东师范大学中山北路校区办公楼小礼堂成功举办。会中多位专家学者进行了学术报告&#xff0c;并围绕认知…