为啥删除了数据库中的数据,在服务器端还能查询出来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥删除了数据库中的数据,在服务器端还能查询出来相关的知识,希望对你有一定的参考价值。

这分别是Oracle数据库中的数据和浏览器端查出来的数据。我明明把数据库中的数据删掉了,为什么在浏览器还是能查出来?这个项目我用了Struts2和hibernate。
请大神指点指点,十分感谢!

参考技术A 因为服务端和数据库不是实时同步的,有些数据是缓存在服务端或者客户端本地的,所以一段时间内仍然是可以查询到的!

为什么查询出来的数据保存到Arraylist?插入删除数据为啥用LinkedList?

引言:这是我在回答集合体系时,被问到的一个问题,也是因为没有深入学习所以回答的并不是很好,所以这两天看了一下,以下是我的一些回答与学习方法。

学习方法:我们学习,系统性的学习肯定是比零散的学习更有效的,针对一个问题,要对它涵盖的内容都进行学习,而不是只针对问题本事,死记硬背,所以我也是从头学起,从最顶级的接口到实现类的源码。  

今天我主要讲是针对Arraylist以及LinkedList的区别进行回答,如果你想从头来一遍,这是我学习的文章。https://www.cnblogs.com/CarpenterLee/p/5545987.html。  

------ArrayList和LinkedList同属于List接口下的实现类。 

对于问题的回答,下面是我看完这几篇文章后自己的想法,看完后还是有点闷逼,但多多少少还是能回答一点。

问题1:为什么查询出来的数据保存到Arraylist?竟然你说它速度快,为什么快?   

答:  ArrayList它是使用数组的方式 实现的,数组有长度固定,下标识索引。正是因为这两个特性,促使我们保存数据的时候去使用它。查询出来的数据保存进去,这也就意味的两种操作,先放数据后拿数据,我们先说放数据,我们放入数据的时候,通常是通过add,在使用add方法的时候,它会找我们ArrarList里面最后一个数组的位置,然后将数据放进去,在这个过程中,我们不需要对元素进行移动,所以它所消耗的时间是非常少的,拿数据的时候,因为我们指定了get(index)方法的下标索引,通过索引我们就可以找到这个索引下对应的值,将其拿出,这个过程不会有其他时间的开销。相反,如果对数组中的数据进行指定位置插入或者删除,那么数组中的每个下标对应的值就要进行位置的移动,这浪费了一部分时间开销。

问题2:插入、删除数据为啥用LinkedList?

答:LinkedList是如通过双向链表实现的,如果你对单、双向链表还不了解,可以先去学习一下,这样你对插入、删除为啥用LinkedList就很清晰了。在双向链表中,每个元素它都有一个pre和next的指向,也就是指向它的上一个元素是什么,下一个元素是什么,并依次链接下去,在指定插入位置的时候,我们只需要去找这个元素插入的位置,它的上一个元素是什么,下一个元素是什么,加上自身元素总共有三个元素受到影响,修改它们的pre和next指向即可,不像数组,在中间插入一个元素,它后面所有的元素都会受到影响,删除同理。

 

以上全部是本小白对于这个问题的个人见解。

请大佬对我所描述的错误内容指出,感激不尽。

以上是关于为啥删除了数据库中的数据,在服务器端还能查询出来的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver数据库中的字段是bit类型的,数据库中查询查询出来的值为啥是true,o查询不出来

ASP.net如何实现数据的查询,删除,修改,编辑!

idea没有配置redis链接为啥还能访问到数据

在oracle数据库表中没有添加rowid字段为啥会出现

sqlserver 插入完整的数据后,为啥查询出来某个字段为只显示一半

csgo连接到任意服务器失败为啥?