作者pupuliao (pupu)
看板java
标题Re: [问题] 从资料库查询出结果後,如何把结果存起来
时间Thu Nov 25 20:29:07 2021
※ 引述《lueichun (= =)》之铭言:
: ※状况概述:
: 就是现在我的程式里有查询资料的功能,跟查询後使用者可以选择列印资料的功能,
: 查询钮在起始页面,按下查询钮後查询出结果并在查询页面呈显出来,
: 而查询页面同时有列印资料的按钮,按下去就可列印出刚刚的查询结果。
: 现在我的做法是查询跟列印都会到资料库查询资料,我想把程式改成查询时
: 从资料库捞出资料,在呈显出来的同时将资料存起来,这样要做列印时只要把存的资料取出
: 就可列印,就不用浪费资源重复到资料库捞资料。
: 请问要怎麽做才能把查询结果存起来,等到要列印的时候呢?
: 程式是用传统的servlet写的,那可以用session吗?或是其他的servlet scope变数?
我上下两题一起回答
先说明
这类问题,我并没有用JAVA 完成过,我主要使用php
因为工作需要我常常要做出类似功能
首先,不论是显示在画面中 还是 印出来的资料,应该都是你搜寻过後整理的资料
这些资料我会使用json格式组合成一个字串
再把搜寻条件串起来後md5 成一个固定长度的 token
这时你就可以透过单纯的key value的方式储存快取
储存的方式很简单
你可以同样使用资料库开一个简单两个栏位的快取table
甚至可以把结果压缩成binary格式後後再储存缩减资料规模
快取的储存方式 也可以是memcached 或是 Redis 来完成
我自己是实验过後 继续用mysql 来完成XD
这样因为 是以搜寻条件组成token ,所以在下次搜寻时,可以直接把条件传换成
token 先去检查是否有快取,并取出快取
这样可以让你的快取使用无数次
另外 快取的时效性 你可以是加开timestamp 栏位判断,或是固定时间清空的方式处理
反正这就是根据需要来做
如果上述方式完成
最终显示 你是要一口气显示出来,还是分页显示都没啥问题
你甚至可以在显示结果的时候 纪录token,下次取资料的时候直接用token取
连转换都省了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.231.178.130 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1637843349.A.DAE.html