求助,从数据库啊中加载多张图片,总是内存溢出,请各位老师指点有没有好的方法,代码如下

qp370982 2015-05-24 12:47:17
public class TowerImage extends JPanel{
String driver= "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String user="sa",password="370982";
String url="jdbc:sqlserver://localhost;DatabaseName=基础信息";
InputStream input;
int i=0;
public TowerImage() throws Exception {
this.setLayout(new FlowLayout(FlowLayout.LEFT));
String sql="select 图片 from 基础图片 where 组别='基础组'";
Class.forName(driver);
Connection con=DriverManager.getConnection(url,user,password);
Statement st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=st.executeQuery(sql);
rs.beforeFirst();
while(rs.next()){
input=rs.getBinaryStream("图片");
add(new picbox(input));
i++;
}
setPreferredSize(new Dimension(150,(i/5+1)*220));
rs.close();
st.close();
con.close();
}
class picbox extends JPanel{
BufferedImage image;
picbox(InputStream in) throws IOException{
image=ImageIO.read(in);
try{
setPreferredSize(new Dimension(220,250));
}catch(Exception e){e.printStackTrace();}
}
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(image,0,0,getWidth(),getHeight(),null);
image=null;
g.dispose();
}
}

}
...全文
284 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inhibitory 2015-05-29
  • 打赏
  • 举报
回复
数据库也可以不用 Web 路径,而用存储位置的相对路径,但是最好是存储路径下的子目录,不推荐有 ../.. 这种情况,这表明图片放在了指定的存储目录外了
Inhibitory 2015-05-29
  • 打赏
  • 举报
回复
引用 2 楼 qp370982 的回复:
请问,图片的地址怎么写,前面要加上服务器的ip吗,谢谢指教
1. 图片的存储路径最好是通过配置,而不是在硬盘上的路径,这样更改图片的存储位置时不需要修改数据库内容,只要修改配置就可以。 2. 数据库里就存储图片的 Web 路径,入 /img/Tiger.png,例如使用 Spring 时可以通过修改 mvc:resources 来修改图片的存储路径和 Web 路径的映射。
qp370982 2015-05-28
  • 打赏
  • 举报
回复
数据库里没有大数据,请问怎么样清理啊,请老师指点
qp370982 2015-05-28
  • 打赏
  • 举报
回复
我加上bufferedImage=null 了为什么不释放内存
qp370982 2015-05-28
  • 打赏
  • 举报
回复
请问bufferedImane能及时清理,最好在循环中进行清理,请各位老师指点。
finemi 2015-05-27
  • 打赏
  • 举报
回复
读取图片后马上清理掉然后再读下一张。 另外数据库里面一般不会存大数据
qp370982 2015-05-26
  • 打赏
  • 举报
回复
请问,图片的地址怎么写,前面要加上服务器的ip吗,谢谢指教
Inhibitory 2015-05-24
  • 打赏
  • 举报
回复
增加JVM的内存 推荐图片不要存储在数据库里,数据库存储图片的路径

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧