关闭

Java从数据库中读取图片到Jpanel

发表于:2013-11-04 09:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:u010181717    来源:51Testing软件测试网采编

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.imageio.ImageIO;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
public class pictest
{
public pictest(){
JFrame f=new JFrame();
Container p=f.getContentPane();
ppic pic=null;
InputStream in=null;
try{
int i=3;
String url="****************";
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(url,"***","***");
//连接到数据库
if(!con.isClosed())
System.out.println("数据库连接成功");
String sql="select * from campusimage";
Statement st=con.createStatement();
ResultSet rs=st.executeQuery(sql);
for(int j=0;j<i;j++)
rs.next();
if(rs.next())
in=rs.getBinaryStream(1);
pic=new ppic(in);
rs.close();
st.close();
con.close();
}catch(Exception e){e.printStackTrace();}
p.setLayout(null);
p.add(pic);
f.setBounds(500,400,800,900);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
class ppic extends JPanel
{   BufferedImage bi;
ppic(InputStream in){
try{
bi=ImageIO.read(in);
setBounds(0,0,700,600);
}catch(Exception e){e.printStackTrace();}
}
public void paint(Graphics g){
g.drawImage(bi,0,0,700,600,null);
}
}
public static void main(String[] args){
new pictest();
}
}
  ps:网上许多人都是把数据库中的图片实例化到本地,不仅读取速度慢,而且浪费内存,当时如果你的图片非常小就算了。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号