Java JDBC读取二进制类型数据(BLOB)
2012-12-28 22:58
591 查看
Java JDBC读取二进制类型数据(BLOB)
开发中我们常常会将一个图片存入数据库或者将一个文件存入数据库,那么就需要用到BLOB类型。今天和大家分享怎么把二进制文件用Java JDBC存入数据库。
一、建立数据库表
参照具体业务
二、写入数据库程序实现
1、编写JDBC工具类
2、编写业务接口(DAO)
3、编写业务接口实现类(DAOIMPL)
4、调用接口实现写入BLOB
开发中我们常常会将一个图片存入数据库或者将一个文件存入数据库,那么就需要用到BLOB类型。今天和大家分享怎么把二进制文件用Java JDBC存入数据库。
一、建立数据库表
参照具体业务
二、写入数据库程序实现
1、编写JDBC工具类
package com.haerbin.JDBCProject.Connection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public final class JdbcUtil_Oracle { private static String url = "jdbc:oracle:thin:@localhost:1521:orcl"; private static String user = "scott"; private static String password = "tigger"; private JdbcUtil_Oracle() { } static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, password); } public static void free(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
2、编写业务接口(DAO)
package com.haerbin.JDBCProject.Dao; import java.io.File; import java.io.IOException; import java.io.InputStream; public interface BlobDao { public void addBlob(InputStream in, File file) throws IOException; }
3、编写业务接口实现类(DAOIMPL)
package com.haerbin.JDBCProject.DaoImpl; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.haerbin.JDBCProject.Connection.JdbcUtil_Oracle; import com.haerbin.JDBCProject.Dao.BlobDao; public class BlobDaoImpl implements BlobDao { /** * 数据库插入blob类型数据 * * @throws IOException */ public void addBlob(InputStream in, File file) throws IOException { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtil_Oracle.getConnection(); String sql = "insert into blobtable(id, blob_bit) values(my_sequences.nextval, ?)"; ps = conn.prepareStatement(sql); ps.setBinaryStream(1, in, (int) file.length()); ps.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } finally { JdbcUtil_Oracle.free(rs, ps, conn); in.close(); } } }
4、调用接口实现写入BLOB
package com.haerbin.JDBCProject.Beans; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import com.haerbin.JDBCProject.Dao.BlobDao; import com.haerbin.JDBCProject.DaoImpl.BlobDaoImpl; public class BlobTest { /** * blob数据库存入 * @throws IOException */ public static void main(String[] args) throws IOException { /*向数据库中添加blob类型数据*/ BlobDao bd = new BlobDaoImpl(); File file = new File("D:/myimage.PNG"); InputStream in = new BufferedInputStream(new FileInputStream(file)); bd.addBlob(in, file); } }
相关文章推荐
- Java JDBC读取大文本类型数据(CLOB)
- 使用java JDBC方式操作oracle blob类型数据
- Java用JDBC保存读取二进制数据
- [疯狂Java]JDBC:用blob处理多媒体类型数据
- 使用JDBC和Hibernate在oracle中插入和读取Blob数据的图片的java程序
- 使用java JDBC方式操作oracle blob类型数据
- 【JAVA秒会技术之搞定BLOB数据类型】如何读取及展示数据库中BLOB类型的图片
- JDBC保存和读取大文本数据类型
- java读取并导出多类型数据csv文件
- JDBC读取MySQL的BLOB类型
- jdbc的Date类型处理,解决java.util.date与java.sql.date的时间数据丢失
- JDBC存储和读取二进制数据
- Hibernate操作Blob类型字段出现java.lang.AbstractMethodError: oracle.jdbc.driver.OracleResultSetImpl.getBlob(Ljava/lang/String;)Ljava/sql/
- Java、JDBC与MySQL数据类型对照
- SQL Server、JDBC 和 Java 编程语言数据类型之间的默认映射
- JDBC读取MySQL的BLOB类型
- jdbc oracle clob blob long类型数据
- java之二进制与数据类型(一)
- java-JDBC从数据库中读取数据并进行日期民族男女的转换
- 验证java中char数据类型在内存中的二进制形式为Unicode编码