由于程序要反复读取某个表中的数据,我想把表中的数据读取出来放到内存中,java好像提供了类似的类,请高手指点 看你想怎么样访问数据,如果是顺序读取的话可以用ArrayList。如果要根据某个值访问则用HashMap。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请问 lhj(努力加油)我要找的就是HashMap,请问你有具体的实现代码吗?先谢 数据量太大的话,最好不要放到内存中!读出来后加到hashmap就可以了阿 public class ExmpleDaoImpl implements ExampleDao { public List getExampleList(){ ..... //读取数据库 ..... return ...; }}public class ExmpleServiceImpl implements ExampleService {private ExmpleDao dao;//用工厂类获得或使用Spring管理Bean//缓冲容器private final static Map exampleCacheMap=Collection.synchronizedMap(new HashMap())public List getExampleList(){ String cacheKey=getCacheKey(null,null); Object obj=exampleCacheMap.get(cacheKey); if(obj==null){ obj=dao.getExampleList(); exampleCacheMap.put(cacheKey,obj); } return (List)obj;}...//在其它更新数据库的方法中使用合适的策略更新exampleCacheMap...//根据查询参数得到cache keyprivate String getCacheKey(String[] params,Object[] values){ .... return ...;}} 原来搂主还没有解决问题啊,我给你一个我自用的例子好了假设我有一张表T_NAME2MEMO,里面有2字段NAME,MEMO,意思是某东西名字和说明,现在需要利用hashmap来实现根据名字name来查找说明memo生成hashmap的代码如下:HashMap hmET = new HashMap();try{ stm = conn.createStatement(); rs = stm.executeQuery("select NAME,MEMO from T_NAME2MEMO"); hmET.clear(); while(rs.next()){ hmET.put(rs.getString("NAME"), rs.getString("MEMO")); } if(rs != null) rs.close();}catch(Exception ex){ ex.printStackTrace();}使用的代码如下,得到的retStr就是根据你的参数yourname得到的说明:String retStr = (String) hmET.get(yourname);更多的功能请自己考虑。put(key,value) value可以是一条记录的对象。 关于ImageIO读取图片的问题 [面试题]去掉一个已经排好序的数组的重复数字,速度尽量快 怎样设置选项卡的大小 双向回环链表的实现. 呵呵 把自己弄迷糊了 等待来人解决 有关frame显示的问题! junit 在测试中的System.out.println("sddfssdf");怎么无法输出来呢?但在非测试方法里可以输出来。 刚刚在SOHU看到一个令人发火的帖子 请问现在IE自带支持的JDK的版本是多少? (简单问题) 请问这个程序为什么抛出这样一个违例??? 20分请求java读取property文件的路径问题,着急呀! 求如何判断五指棋胜负的算法
读出来后加到hashmap就可以了阿
public List getExampleList(){
.....
//读取数据库
.....
return ...;
}
}public class ExmpleServiceImpl implements ExampleService {private ExmpleDao dao;//用工厂类获得或使用Spring管理Bean
//缓冲容器
private final static Map exampleCacheMap=Collection.synchronizedMap(new HashMap())
public List getExampleList(){
String cacheKey=getCacheKey(null,null);
Object obj=exampleCacheMap.get(cacheKey);
if(obj==null){
obj=dao.getExampleList();
exampleCacheMap.put(cacheKey,obj);
}
return (List)obj;
}...
//在其它更新数据库的方法中使用合适的策略更新exampleCacheMap
...//根据查询参数得到cache key
private String getCacheKey(String[] params,Object[] values){
....
return ...;
}
}
现在需要利用hashmap来实现根据名字name来查找说明memo生成hashmap的代码如下:HashMap hmET = new HashMap();
try{
stm = conn.createStatement();
rs = stm.executeQuery("select NAME,MEMO from T_NAME2MEMO");
hmET.clear();
while(rs.next()){
hmET.put(rs.getString("NAME"),
rs.getString("MEMO"));
}
if(rs != null)
rs.close();
}
catch(Exception ex){
ex.printStackTrace();
}
使用的代码如下,得到的retStr就是根据你的参数yourname得到的说明:String retStr = (String) hmET.get(yourname);更多的功能请自己考虑。put(key,value) value可以是一条记录的对象。