六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 51|回复: 0

java 操作oracle表中的图片

[复制链接]

升级  8.67%

15

主题

15

主题

15

主题

秀才

Rank: 2

积分
63
 楼主| 发表于 2013-1-15 02:58:08 | 显示全部楼层 |阅读模式
package com;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DBBLOG {static Connection connection;static String url = "jdbc:oracle:thin:@10.12.100.22:1521:liang";static String username = "scott";static String password = "tiger";static PreparedStatement ps;static ResultSet rs;/** * @param args */public static void main(String[] args) {getConnection();try {writeImg("f:\\a.jpg","4");readImg("f:\\b.jpg","4");connection.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public static Connection getConnection() {try {Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();connection = DriverManager.getConnection(url, username, password);} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return connection;}// 图片添加到数据库public static void writeImg(String url,String id) throws FileNotFoundException,SQLException {File in_f = new File(url);FileInputStream f_in = new FileInputStream(in_f);String sql = "INSERT INTO T_IMG VALUES (?,?)";ps = connection.prepareStatement(sql);ps.setString(1, id);ps.setBinaryStream(2, f_in, (int) in_f.length());ps.executeUpdate();connection.commit();ps.close();}public static void readImg(String url,String id) throws SQLException, IOException {File out_f = new File(url);OutputStream os = new FileOutputStream(out_f);String sql = "SELECT * FROM T_IMG WHERE ID = "+id;InputStream in = null;ps = connection.prepareStatement(sql);rs = ps.executeQuery();while (rs.next()) {in = rs.getBinaryStream("IMG");byte[] b = new byte[in.available()];int len = -1;while ((len = in.read(b)) != -1) {os.write(b, 0, len);}}os.flush();os.close();if (in != null)in.close();}}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表