如何在Java程序中选择添加图片,再存到数据库中

如何在Java程序中选择添加图片,再存到数据库中,第1张

存储图片

//加载驱动程序类

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa")

//建立数据联机,其中denglu为数据库名,sa为连接数据库的帐号及密码。

Statement stmt=con.createStatement()//建立Statement对象

FileInputStream str=new FileInputStream(filename)//图片文件路径

String sql="insert into picturenews(id,image) values(?,?,?)"

PreparedStatement pstmt=con.prepareStatement(sql)

pstmt.setString(1,id) //ID号

pstmt.setBinaryStream(2,str,str.available()) //图片数据

pstmt.execute()

//将数据存入数据库

out.println("Success,You Have Insert an Image Successfully")

图片读取:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa")

Statement stmt=con.createStatement()

ResultSet rs=null

String sql = "select image from picturenews WHERE id="+id

rs=stmt.executeQuery(sql)

if(rs.next()) {

//图片输出的输出流

InputStream in = rs.getBinaryStream("image")

byte b[] = new byte[0x7a120]

for(int i = in.read(b)i != -1)

{

//将缓冲区的输入输出到页面

in.read(b)

}

}

/**

* 获得数据后可以按照自己的方法进行处理或者显示

*/

JLabel label=new JLabel(new ImageIcon(b)) //用JLabel进行显示

.....

将图片插入数据库时,首先将图片转换成二进制格式,同样读取的时候将二进制再解析回来就OK了

解析二进制:

int length = 0

ServletOutputStream toClient = null

byte[] buf = null

Blob image = dengji.getTupian()//dengji 实体 从数据库中获取

try {

length = (int)image.length()//取得流中可用的字节总数

buf = image.getBytes(1, length)//获取Blob字节数组

this.getResponse().setContentType("image/jpeg")

this.getResponse().setHeader("Pragma", "No-cache")

this.getResponse().setHeader("Cache-Control", "no-cache")

this.getResponse().setDateHeader("Expires", 0)

toClient = this.getResponse().getOutputStream()//获取输出流

for(int i = 0 i <buf.length i++ ){

toClient.write(buf[i])//输出到页面

}

toClient.close()//关闭输出流

} catch (SQLException e) {

e.printStackTrace()

} catch (IOException e) {

e.printStackTrace()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9893253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存