http://zhidao.baidu.com/link?url=ypr8hVqGOpB7R46iCvNO_coap4IFDUjd4QumAAWDQo6nOqqsActjy6RWQj0SchapCHKeJmL9U3t06eH-Pjq_PN7Ewn_8jY3Qq333T6jxfLu
我用的是spring mvc,我想的是为了使加载速度加快,想把从数据库中取出的数据预先存入到内存,不用每次加载都要请求数据库,请大家帮帮忙!!!
JAVA 如何把数据读出放在内存中以供调用?
在一个spring mvc项目中,如何写一个类把数据从数据库中读出放在内存中以供调用,该如何实现?
其实我只是要一个很简单的功能 就是从数据库读出数据 把这堆数据放在内存里 然后在用到的时候再去读内存里的这堆数据。
最好能有代码说明 谢谢!
我觉得你要实现的这个可能跟SpringMvc的关系不是很大。
你要达到的目的其实就是在jvm启动的时候把数据库数据加载一份到内存,一个静态变量和一个静态初始化块就可以搞定你的问题,这两者都是在类加载的时候初始化一次,像前面回答的一样,你可以用一个HashMap搞定。
稍微具体来说,一个静态变量
public static final Map<key,value> cache=new HashMap<key,value>()
static {
cache=请求数据库操作
}
key你自己加,String还是int都行,value是你数据库的结构,可以写个实体。获取的时候直接cache.get(key)就可以了。
静态全局变量 MAP 就是所谓的缓存
如果不涉及并发
public static final Map cache=new HashMap()
这样就是了
然后key value 去读取
写一个ServletContentListener,在servlet启动完成之后,将想要的数据从数据库读出来,然后保存到内存中(需要保证该对象不会被Jvm自动回收),在用的时候在拿来使用
分享到:
相关推荐
首先,连接池(Connection Pool)是一种数据库连接管理技术,其核心思想是预先创建并维护一定数量的数据库连接,当应用程序需要时可以从池中获取,使用完毕后再归还到池中,而不是直接关闭。这种机制可以避免频繁...
连接池的初始化会预先创建一定数量的连接并存入列表,当需要执行数据库操作时,不再创建新的连接,而是从池中获取已存在的连接。操作完成后,将连接归还回池,以便后续使用。以下是自定义连接池的主要方法: 1. **...
- **缓存机制**:可以预先生成一批 ID 存入缓存中,这样在真正使用时可以直接从缓存中取出,提高效率。 - **异步更新**:对于某些非关键操作,如日志记录等,可以采用异步方式进行,避免阻塞主线程。 #### 五、总结...
Java线程池的核心思想是通过重用预先创建的线程来减少线程创建和销毁的开销,同时控制线程的数量,避免资源过度消耗。主要由以下几个关键组件构成: - **Executor框架**:提供了创建线程池的基础接口。 - **...
数据库连接池(Connection Pool)是一种管理技术,它预先建立一定数量的数据库连接,并将这些连接存放在缓存池中,这样应用程序就可以重复使用这些现成的连接,而不需要每次请求都建立新的连接。 在本文中,我们...
2. 连接管理:连接池需要维护一个空闲连接列表,当有新的请求时,从列表中取出一个可用连接。如果列表为空,且未达到最大连接数限制,可以创建新的连接。反之,如果达到最大连接数,请求可能会被阻塞或抛出异常。 3...
16. 计算机的基本工作原理是存储程序控制,即预先将指令存入存储器,然后由控制器逐条取出并执行。 17. 插入菜单下的相应命令可以方便地输入特殊符号、日期时间等。 18. 未开启的计算机收到电子邮件时,邮件会被...