用C/S结构做一个项目,为了减少对数据库的访问次数,需要启动项目时把数据存起来放到内存里,供以后使用,请问放到内存里的方式有哪些? 3q~ 用C/S结构做一个项目,为了减少对数据库的访问次数,需要启动项目时把数据存起来放到内存里,供以后使用,请问放到内存里的方式有哪些? 这个功能就类似WEB工程里的session 谢谢啊j2se session 内存 c/s j2se内存sessionc/s 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 放到一个map里,登陆成功则用你的方式计算出一个sessionid然后在map里建一个新键不就行啦 看实际情况吧,不需要线程安全的就用普通的集合类保存。需要线程安全的就用concurrent包下的线程安全的集合来保存。 定义一个单实例类,在类中定义一些静态的Hashtable对象,在应用启动时,把数据库内容加载到Hashtable对象中。以后使用时就只需访问Hashtable对象,不用再访问数据库。 jdbc提供的ResultSet本身就是存储查询结果的内存对象,另外,如果数据量小且是只读的话把数据放在内存里缓存是没问题的,但如果涉及到修改数据,就会出现内存中的数据和数据库中数据不一致的情况 或者用缓存都行,hashmap存放键值对 放到map里。。 这个map需要是静态的? 还可以使用内存数据库例如Sqlite 不一定,如果比如说你用Application这个类在你的程序里只有一个实例,那就不需要是静态的,但如果你用比如说User这个类在你的程序里不是单例,那就要静态的,需要看情况 public static final Map<String, Object> cache = Collections.synchronizedMap(new HashMap<String, Object>());我决定用这个了。。 了解一下ConcurrentHashMap,你会发现这个在线程安全方面比你那个靠谱。如果你不需要线程安全,直接用HashMap就好了。 分布式javaweb有专门的session服务器 首先你要决定是在服务器端还是客户端或者二者使用缓存, 然后可以考虑Cache方案,比放在内存中要好, 当数据量大时,缓存会自动保存到硬盘上去。 当然,要根据你的数据量大小, 访问要求再做决定, 没有最好的, 只有最适合的。 简单的用Map复杂的用缓存机制。 使用iteraor产生警告 初学java,弱弱的问一下,类名.class是啥意思? 求助~关于netbeans的异常对话框 在jtable有很多列时,怎么能在拖动最后一列向前移动时,水平滚动条自动跟着鼠标向前移动 关于java反射的问题(高手请进) 请问这com.monowai这个包放在那里的??? 大家帮忙看看 如何终止当前操作 关于自定义包的问题,求救~~~~~~~~~~~~~~~ 关于jdbc的中文问题和jdk1.2的打印 关于java显示图片的问题 。。关于抓取网页信息的问题,
需要线程安全的就用concurrent包下的线程安全的集合来保存。
放到map里。。 这个map需要是静态的?
不一定,如果比如说你用Application这个类在你的程序里只有一个实例,那就不需要是静态的,但如果你用比如说User这个类在你的程序里不是单例,那就要静态的,需要看情况
了解一下ConcurrentHashMap,你会发现这个在线程安全方面比你那个靠谱。
如果你不需要线程安全,直接用HashMap就好了。
复杂的用缓存机制。