当一个查询方法里面同时使用多个查询语句或者查询的条件过于繁杂从而导致服务器的请求会
变慢的时候, 直接加快服务器的查询速度是不可能的。
但我们可以利用session的特性提高重复查询的效率。
什么是重复查询呢? 就是在同一查询条件的情况下进行多次查询,
那么我们可以利用session, 把查询到的数据信息先放进session空间里,然后再显示到页面中。
如果第二次的查询条件与第一次的查询条件一样的话,
那么就可以从session中直接把第一次查询到的数据直接提取出来显示,
这样可以避免服务器再次进入数据查询相同的数据。从而提高重复查询的效率。
原理很简单,那实际代码呢?
首先在查询方法里声明一个对象列表, (装载查询出来的数据列表)
然后声明一个装载查询条件的字符串。(判断查询的条件是否相同)
字符串里面用到String.Format方法的作用就是将传过来的查询条件
转换为字符串 令字符串进行一个判断 判断查询条件较上次的查询条件是否一样
而{0},{1},{2}这是属于占位符, 意思就是实参没有传过来就将位置占好
其作用就是将各个不同的查询条件整理好.
避免查询条件相同顺序不同而无法进行判断。
三个查询条件就从页面上传过来的参数值三个参数会一一代入对应占位符的位置
最后让装载这查询条件的字符串和装载着查询数据的列表进入一个逻辑判断
当if语句满足条件就直接从session提取数据信息,
如果不满足就进行一次数据筛选.
当进行一次条件查询服务器就会先进行一次判断
判断查询条件是否较上次查询一样,
如果不一样代码就会直接进入数据筛选
根据条件筛选出对应的数据
当条件重复了的话 页面显示的数据不是通过数据筛选得出来的,
而直接通过提取session中的数据得到的。