`
loveme13
  • 浏览: 25416 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

jdbc操作oracle Blob字段读写

阅读更多

写入Oracle Blob字段
/**
	 * 插入Blob字段
	 */
	public static void insertBlobField(){
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			String url = "jdbc:oracle:thin:@192.168.8.100:1521:ORCL";
			String username = "shouyao";
			String password = "shouyao";
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn = DriverManager.getConnection(url, username, password);
			conn.setAutoCommit(false);
			stmt = conn.createStatement();
			stmt.execute("insert into a_blob_test(id,picture) values(1,empty_blob())");
			rs = stmt.executeQuery("select t.id,t.picture from a_blob_test t where t.id = 1 for update");
			File f1 = new File("E:\\hel\\MyEclipse 10.0\\druggist\\code\\src\\test\\test.jpg");
			FileInputStream fis = new FileInputStream(f1);
			OutputStream os = null;
			if(rs.next()){
				oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob(2);
				os = blob.getBinaryOutputStream();
				byte[] b = new byte[(int) f1.length()];
				fis.read(b);
				os.write(b);
				os.flush();
			}
			os.close();
			conn.commit();
			rs.close();
			stmt.close();
			conn.close();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			if(stmt != null){
				try {
					stmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(conn != null){
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}



读取oracle Blob字段
       /**
	 * 查询Blob字段存储的图片文件,并输出
	 */
	public static void queryBlobField(){
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		String url = "jdbc:oracle:thin:@192.168.8.100:1521:ORCL";
		String username = "shouyao";
		String password = "shouyao";
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn = DriverManager.getConnection(url, username, password);
			stmt = conn.createStatement();
			rs = stmt.executeQuery("select t.id,t.picture from a_blob_test t where t.id = 1");
			//文件保存的路径
			File f1 = new File("E:\\hel\\MyEclipse 10.0\\druggist\\code\\src\\test\\test1.jpg");
			FileOutputStream fos = new FileOutputStream(f1);
			InputStream is = null;
			if(rs.next()){
				Blob blob =  rs.getBlob(2);
				is = blob.getBinaryStream();
				int len =0;
				byte[] b = new byte[1024];
				while((len = is.read(b)) != -1){
					fos.write(b,0,len);
				}
			}
			fos.close();
			is.close();
			rs.close();
			stmt.close();
			conn.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}finally{
			if(stmt != null){
				try {
					stmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(conn != null){
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
分享到:
评论

相关推荐

    Oracle blob字段上传下载

    本文将详细介绍如何在Oracle数据库中实现Blob字段的上传和下载操作。 #### 二、Blob字段上传 Blob字段的上传通常涉及到以下几个步骤: 1. **创建Blob字段:** 首先需要在数据库表中定义一个Blob类型的字段。 2. **...

    jdbc读写Oracle的CLOB字段

    JDBC读写Oracle的CLOB字段

    Java与Oracle大字段读写(含代码)

    在Java中,我们可以使用JDBC(Java Database Connectivity)API来与Oracle数据库进行通信,其中`oracle.jdbc.driver.OraclePreparedStatement`和`oracle.jdbc.OracleResultSet`类提供了对BLOB字段的操作接口。...

    jdbc+hibernate存取blob字段

    本篇将详细介绍如何使用JDBC(Java Database Connectivity)与Hibernate框架来操作Oracle数据库中的BLOB字段。 首先,Oracle数据库的BLOB字段提供了对大对象的高效存储,它的性能优于LONG字段,尤其适合存储大容量...

    JDBC+Hibernate将Blob数据写入Oracle

    Hibernate提供了`BlobType`等类型映射器来简化BLOB字段的读写操作。开发者可以通过实体类中的字段直接与BLOB类型的数据库字段关联,Hibernate会在后台自动处理BLOB的读取和写入过程。 总之,无论是使用JDBC还是...

    java读写oracle的blob字段示例

    【Java读写Oracle BLOB字段】在Java编程中,与Oracle数据库交互时,有时需要处理存储大对象(LOB)的数据,比如图片、音频或大型文本文件。BLOB类型用于存储二进制大对象,本文将详细介绍如何使用Java来读取和写入...

    oracle,weblogic读写blob

    Oracle 和 WebLogic 服务器在处理 ...综上所述,Oracle 和 WebLogic 在处理 BLOB 数据时涉及到数据库操作、JDBC 交互、前端数据处理和安全性等多个方面,需要开发者具备全面的技能和经验才能有效地管理和优化这些操作。

    关于在Hibernate中对于Clob,Blob字段的处理方法

    本篇将详细介绍在Hibernate中如何处理Clob和Blob字段,以及使用特定Oracle JDBC驱动程序的优势。 首先,Hibernate通过`org.hibernate.type`包中的`ClobType`和`BlobType`来映射Clob和Blob。在实体类中,你需要定义...

    sql server中的image类型的数据导出到oracle的clob字段中

    为了将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中,我们需要使用Java 语言和 JDBC 驱动程序。下面是一个示例代码,演示如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中: ...

    java,Blob字段操作,将图片或者文件保存到数据库中.zip

    本教程将深入探讨如何使用Java进行Blob字段的操作,以实现将图片或文件保存到数据库中。 1. **Blob字段的理解** Blob是SQL标准定义的一种数据类型,它能够存储大量的二进制数据,如图像、音频文件、PDF文档等。在...

    jdbc批量插入大字段

    因此,"jdbc批量插入大字段"这个话题旨在探讨如何高效地通过Java JDBC来实现Blob字段的批量插入,以提高性能。 首先,我们需要了解JDBC(Java Database Connectivity),它是Java编程语言与各种数据库之间通信的...

    使用hibernate对oracle读取blob

    在实体类中,你可以定义一个Blob类型的属性来表示数据库中的Blob字段: ```java @Entity public class MediaEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Lob ...

    一个关于更新Oracle中Blob问题

    在Java中,我们通常使用`oracle.jdbc.driver.OracleCallableStatement`或`oracle.jdbc.driver.OraclePreparedStatement`类来处理Blob字段。`setBlob()`方法用于设置Blob值,而`getBlob()`用于获取Blob数据。 2. ...

    spring blob相关

    在使用Spring与Oracle的BLOB字段交互时,确保正确配置数据源和JDBC驱动。同时,Oracle数据库的特定特性,如LOB缓存策略、LOB的生命周期管理等,也需要根据项目需求进行适当调整。 总之,Spring和Oracle结合处理BLOB...

Global site tag (gtag.js) - Google Analytics