- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
对于在供大量人员使用的大型程序中使用缓存,我还比较陌生。我知道什么是缓存以及为什么它总体上是有益的,并且我已经开始将 EHCache 集成到我使用 JSP 和 Spring MVC 的应用程序中。在我的应用程序中,用户从下拉列表中选择一个 ID,这使用 java 类根据选择的 ID 从数据库中获取数据。首先执行查询并返回一个 ResultSet 对象。此时我很困惑该做什么,感觉自己错过了一些东西。
我知道我希望该对象进入缓存(如果它还没有在缓存中),如果它已经在缓存中,则继续循环。但是这样做需要我迭代数据库查询返回的整个结果集,这显然不是应该做的事情?
那么,您是否建议我尝试缓存返回的整个结果集?如果我这样做,我想如果数据库表用新记录更新,我可以更新缓存中的列表?关于如何继续并将数据库返回的内容正确放入 ecache 有什么建议吗?
我知道我提出了很多问题,如果有人能提供一些帮助,我当然不胜感激!这是我的代码片段,以便您明白我的意思。
rs = sta.executeQuery(QUERYBRANCHES + specifier);
while (rs.next())
{
//for each set of fields retrieved, use those to create a branch object.
//String brName = rs.getString("NAME");
String compareID = rs.getString("ID");
String fixedRegID = rs.getString("REGIONID").replace("0", "").trim();
//CHECKING IF BRANCH IS ALREADY IN THE CACHE. IF IT IS NOT CREATE
//THE NEW OBJECT AND ADD IT TO CACHE. IF THE BRANCH IS IN CACHE THEN CONTINUE
if(!cacheManager.isInMemory(compareID))
{
Branch branch =
new Branch(fixedRegID, rs.getString("ID"), rs.getString("NAME"), rs.getString("ADDR1"), rs.getString("CITY"), rs.getString("ST"), rs.getString("ZIP"));
cacheManager.addBranch(rs.getString("ID"), branch);
}
else
{
continue;
}
}
retData = cacheManager.getAllBranches();
最佳答案
But doing things this way requires me to iterate over the whole returned result set from the DB query, which is obviously not the way things are supposed to be done?
您需要迭代才能获取结果。
为了避免对所有元素进行迭代,您需要排除选择中返回的已缓存值。
我的意思是,添加到您的 select
排除子句中包含您不需要的值,在本例中是已缓存的值。 ( not like
、 <>
等)。这将减少迭代时间。
否则,如果您的 SQL 过滤器不完整,恐怕您将不得不迭代所有返回。
So, would you recommend that I just try to cache the whole result set returned? If I did this I guess I could update the list in the cache if the DB table is updated with a new record? Any suggestions on how to proceed and correctly put into ecache what is returned from the DB?
您不应缓存高度动态的业务信息。
我建议您使用数据库索引,这样可以显着提高性能,并从那里获取值。如果需要,请使用纯 native SQL。
如果您要与很多用户一起工作,您将需要大量内存来将所有这些对象保存在内存中。
当您开始水平扩展时,缓存管理将成为一个挑战。
如果可以的话,仅缓存不会更改或更改次数很少的值,例如应用程序启动或应用程序参数中的值。
如果您确实需要缓存业务信息,请告知我们具体情况,比如硬件、平台、数据库、格局、访问峰值等。
关于java - 企业 Web 应用程序中的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23840998/
我一直在积极跟进 Blazor,现在我想从我的工作场所获取一个企业应用程序,并将其转换为 Blazor,并保持在企业的限制范围内。我有很多问题,但我会重点关注:在托管方面我应该从什么模型开始。 ASP
destoon实现首页显示供应、企业、资讯条数有多种方法,这里介绍的是直接调用php程序代码进行查询。destoon的模板里面是支持php的代码的,因此我们可以直接在模板里面查询出来即可。 实现代
我目前的任务是为软件开发创建一个文档化的、一致的架构指南。我们有很多聪明人在做正确的事情,但只是不一致和可重复。 我们使用 Microsoft 的应用程序架构指南 2.0 作为起点。因此,提出一个应用
我们正在使用 Zeek 以“连接日志”的形式从交换机收集网络流量。然后,连接日志通过 filebeat 存储在 Elasticsearch 索引中。每个连接日志都是一个包含以下字段的元组:(sourc
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足 Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以
我只是研究Corda enterprise,我在解压这个文件时下载了文件Corda enterprise3.zip,里面有很多文件jar。谁能帮我解释下corda enterprise的运行和使用方法
我的Apple开发者帐户中有一些有关InHouse App(企业)的预配配置文件。 如果删除那些配置文件,会有什么影响? 会影响已发布的应用程序吗? 删除它安全吗? 最佳答案 您可以删除它们: 已安装
我有一个要分发给公司员工的 iOS 应用程序。我知道为此我们需要考虑企业开发者帐户。我的疑问是我将如何分发构建。苹果是否提供企业商店?如果不是假设我通过 diawi.com 或类似的服务分发构建,将如
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
是否需要注册测试设备(UDID)?在标准程序中,每个用户设备 ID 都必须添加到开发程序中,并且构建必须使用包含 ID 列表的正确配置文件进行签名。它在企业程序中的样子如何。 最佳答案 在企业中,您不
我在 Sphinx 中已有两个数据源: source cities { ... sql_query = SELECT id, city_name, state_name, state_
我们的企业应用程序的生产 APNs 证书即将到期。 是否只是为我们的应用程序 ID 创建新的生产 APNs 证书并用我们的推送通知提供商替换即将过期的证书? 我是否需要重新捆绑和重新分发我们的企业应用
我有一个关于企业 Mac 应用程序分发的问题。我已经使用企业分发证书签署了我的 mac 应用程序,该证书有效期为 future 三年。 现在我的问题是,安装在 Mac 操作系统上的应用程序是否会在三年
我有一个只能在纽约使用的应用程序,它已经在试飞中发布。我可以将其切换到企业版吗? 最佳答案 没有“开关”,它们是两个完全不同的进程。您需要创建一个新的 Enterprise account ,创建企业
对于在供大量人员使用的大型程序中使用缓存,我还比较陌生。我知道什么是缓存以及为什么它总体上是有益的,并且我已经开始将 EHCache 集成到我使用 JSP 和 Spring MVC 的应用程序中。在我
我的应用程序 ID(MDM 应用程序)的企业 APNS 本周过期,不幸的是我没有注意到它。所以我提出了一个新请求,开始在 APP ID 中为 APNS 创建证书,然后完成请求。我可以在我的 App I
我的任务是切换框架并选择 EF 作为 ORM,但我一直在努力弄清楚如何做到这一点。我了解 N 层的基础知识,但在我们公司,我们支持 15 个以上的应用程序,我想了解我们是否应该为每个项目提供单独的 .
我正在设计一个 MySQL 数据库和一个相应的 RoR 应用程序,用于保存各种业务,每个业务都有一个地址。 此应用程序的要求是按城市/国家/地区搜索数据库(这将适用于整个欧洲/英国的企业)。搜索结果将
当使用“企业分发”选项为客户分发 iOS 应用程序时,该应用程序会下载并安装,但很快就会从主屏幕上消失。重新启动 iOS 设备后,它会重新出现。 最佳答案 在我的情况下,如果您在要保存 .ipa 文件
为了让您了解一些背景知识,我们有一个任何人都可以通过网络访问的软件应用程序。它是银行业和零售业的一个非常具体的应用程序。目前,此应用程序可在 Web 和“Windows 平板电脑信息亭”上访问,我们有
我是一名优秀的程序员,十分优秀!