`
awaitdeng
  • 浏览: 216507 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

写入ZIP压缩文件与XML 文件到oracle数据库

 
阅读更多
public boolean addFileContent(final DocTransfer docTransfer, String enconding, boolean isBom, String fileName) {
		boolean bool = false;	StringBuffer updateXmlSqlStr = new StringBuffer();
		// DOC_TRANSFER_BACKUP DOC_TRANSFER
		String sql2 = updateXmlSqlStr.append("insert into ").append(" EDI.DOC_TRANSFER(").append(" FILE_TRANS_ID , BUSINESS_ID,MESSAGE_ID,FUNCTION_CODE,MESSAGE_TYPE,REPRESENTATIVE_PERSON_NAME,")
				.append(" SENDER_CODE,RECEIVER_CODE,TRANS_FILE_NAME,SEND_STATUS,SEND_USER,SEND_TIME,OLD_VERSION_FILE_NAME,SGN_COMPANY,TRANS_FILE_CONTENT ) ")
				.append(" values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,empty_Blob()) ").toString();

		processUpdateWithoutBatch(sql2, new PreparedStatementSetter() {

			public void setValues(PreparedStatement ps) throws SQLException {
				long currentTime = System.currentTimeMillis();
				if (docTransfer.getSendTime() != null) {
					currentTime = docTransfer.getSendTime().getTime();
				}
				ps.setLong(1, docTransfer.getFileTransId().longValue());
				// System.out.println("numbrId="+docTransfer.getBusinessId());
				ps.setLong(2, docTransfer.getFileTransId().longValue());
				ps.setString(3, docTransfer.getMessageId());
				ps.setString(4, docTransfer.getFunctionCode());
				ps.setString(5, docTransfer.getMessageType());
				ps.setString(6, docTransfer.getRepresentativePersonName());
				ps.setString(7, docTransfer.getSenderCode());
				ps.setString(8, docTransfer.getReceiverCode());
				ps.setString(9, docTransfer.getTransFileName());
				ps.setString(10, docTransfer.getSendStatus());
				ps.setString(11, docTransfer.getSendUser());// SGN_COMPANY
				ps.setTimestamp(12, new Timestamp(currentTime));
				ps.setString(13, docTransfer.getOldVersionFileName());
				ps.setString(14, docTransfer.getSgnCompany());
			}
		});
		updateXmlSqlStr.setLength(0);
		updateXmlSqlStr.append("select TRANS_FILE_CONTENT ").append("from EDI.DOC_TRANSFER ").append("  where FILE_TRANS_ID=?").append(" for update");

		final java.sql.Blob blob = (java.sql.Blob) processQuery(updateXmlSqlStr.toString(), new PreparedStatementSetter() {
			public void setValues(PreparedStatement ps) throws SQLException {
				System.out.println("numbrId=" + docTransfer.getFileTransId());
				ps.setLong(1, docTransfer.getFileTransId().longValue());

			}
		}, new ResultSetCallBacker() {
			public Object extractData(ResultSet rs) throws SQLException {
				java.sql.Blob blob = null;
				if (rs.next()) {
					blob = rs.getBlob(1);// rs.getClob(1);
					// log.info("CLob==="+String.valueOf(clob));
				}
				return blob;
			}
		});
		try {

			OutputStream out = (OutputStream) MethodUtils.invokeMethod(blob, "getBinaryOutputStream", null);
			BufferedWriter writer = null;
			File file = new File(fileName);
			InputStream fin = new FileInputStream(file);
			if (docTransfer.getTransFileName().endsWith(".ZIP")) {
				// 将输入流写到输出流
				byte[] buffer = new byte[1024];
				int len = 0;
				while ((len = fin.read(buffer)) != -1) {
					out.write(buffer, 0, len);
					out.flush();
				}
				// 依次关闭(注意顺序)
				fin.close();
				out.close();
			} else if(docTransfer.getTransFileName().endsWith(".xml")||docTransfer.getTransFileName().endsWith(".XML")){
				//String S = new String (docTransfer.getTransFileContent().getBytes("UTF-8"));
				BufferedReader br = new BufferedReader(new InputStreamReader(fin,"UTF-8"));
				
				String data = null;
				while ((data = br.readLine()) != null) {
					//System.out.println(data);
					out.write(data.getBytes("UTF-8"));
					out.flush();
				}
				br.close();
				out.close();
				fin.close();
			}else{
	   			if(!ManifestDeclConstats.DOC_CONTENT_ENCODING_UTF_8.equals(StringHelp.toUpperString(StringHelp.trimNull(enconding)))){
	   				if(isBom==true){
	   					final byte[] bom = new byte[] { (byte)0xEF, (byte)0xBB, (byte)0xBF };
		   				out.write(bom);	
	   				}
	   			  writer = new BufferedWriter(new OutputStreamWriter(out,"GBK"));
	   			}else{
	   				if(isBom==true){
	   					final byte[] bom = new byte[] { (byte)0xEF, (byte)0xBB, (byte)0xBF };
		   				out.write(bom);	
	   				}	
	   				
	   			 writer = new BufferedWriter(new OutputStreamWriter(out,ManifestDeclConstats.DOC_CONTENT_ENCODING_UTF_8));
	   			}
	   			writer.write(docTransfer.getTransFileContent());
	   			fin.close();
	   			writer.close();
	   			out.close();
			}

		} catch (Exception e) {
			log.info("获取数据错误");
			bool = false;
			return bool;
			// throw new RuntimeException(e);
		}
		
		updateXmlSqlStr.setLength(0);
		updateXmlSqlStr.append("update ").append("EDI.DOC_TRANSFER set TRANS_FILE_CONTENT =?  where FILE_TRANS_ID=?").toString();
		processUpdateWithoutBatch(updateXmlSqlStr.toString(), new PreparedStatementSetter() {
			public void setValues(PreparedStatement ps) throws SQLException {
				// ps.setClob(1, clob);
				ps.setBlob(1, blob);
				// ps.setString(2, mftSendRecords.getTransFileContent());
				ps.setLong(2, docTransfer.getFileTransId().longValue());
			}
		});
		
		return true;
分享到:
评论

相关推荐

    C# 读取 XML压缩文件内的数据并写入ORACLE数据库

    本话题涉及的是如何利用C#处理XML压缩文件,并将其中的数据高效地导入到Oracle数据库。以下将详细介绍这一过程的关键步骤和技术点。 首先,我们需要了解XML文件的结构。XML(eXtensible Markup Language)是一种...

    java jar包 ZIp压缩解压 数据库连接驱动 XML解析

    这个包提供了ZipInputStream和ZipOutputStream类,分别用于读取和写入ZIP文件。通过这些类,开发者可以方便地将文件或目录结构打包成ZIP,或者从ZIP文件中提取内容。例如,使用ZipOutputStream,我们可以逐个添加...

    CSharp-Class.zip_C# 注册表_CSharp oracle_Oracle CSharp_oracle_xml o

    本压缩包"CSharp-Class.zip"包含了与C#语言相关的注册表操作、Oracle数据库交互以及XML处理的类库。这些类库对于开发者来说是非常宝贵的资源,能够帮助他们高效地实现相关功能。 首先,让我们来探讨C#对注册表的...

    C# 文件备份系统,数据库文件备份

    总结,使用C#构建数据库文件备份系统涉及到的知识点包括:C#编程基础、.NET框架的文件I/O操作、数据库API(如ADO.NET或Entity Framework)、文件压缩技术、文件系统操作、网络存储、日志管理、定时任务和数据安全。...

    自动生成entity、dao、xml文件-所需文件.zip

    在Spring Boot项目中,开发人员经常需要处理与数据库交互的部分,包括创建数据模型(Entity)、数据访问对象(DAO)和对应的XML配置文件。这个压缩包文件"自动生成entity、dao、xml文件-所需文件.zip"提供了自动化这...

    《实战MATLAB之文件与数据接口技术》代码.zip

    总之,《实战MATLAB之文件与数据接口技术》这本书深入讲解了如何利用MATLAB进行高效的数据文件操作和接口技术,涵盖了从基本的文本和二进制文件读写,到高级的数据格式转换、数据库连接以及与其他编程语言的接口。...

    Linux 下 Tomcat 7 连接 Oracle 10g

    你需要在`<Context>`标签内添加以下代码来定义一个名为`jdbc/myoracle`的数据源,使用`thin`驱动连接到本地的Oracle数据库,用户为`scott`,密码为`tiger`,数据库服务标识符(SID)为`mysid`: ```xml ...

    Oracle GoldenGate V12.2.0.1.1 for MySQL on Windows (64bit).zip

    Oracle GoldenGate通过这个库来连接到MySQL数据库,读取和写入数据。 5. **xerces-c_2_8.dll**:Xerces-C++是一个开源的XML解析器,这里可能是用于解析和处理GoldenGate的配置文件或其他XML格式的数据。 6. **...

    ojdbc6-11.2.0.1.0 .zip

    Oracle JDBC驱动程序是Java开发者与Oracle数据库进行交互的重要工具,ojdbc6-11.2.0.1.0 .zip文件就是Oracle公司为Java应用程序提供的一个特定版本的JDBC驱动程序包,用于解决"Could not find artifact ...

    EBS_XML开发手册.zip

    - **输出生成**:将XML数据写入文件或返回给调用者。 ### 五、XML开发手册内容 “XML开发手册”应涵盖以下内容: 1. **XML基础**:介绍XML的基本概念和语法。 2. **EBS报表框架**:讲解EBS中的报表系统及其与XML...

    MyBatis自动生成配置文件全解.zip

    2. **XML映射文件**:与Mapper接口相对应的XML文件,里面包含了SQL语句的具体实现,包括增删改查等各种复杂的查询。 3. **实体类**:MBG还会生成对应的Java实体类,这些类通常用于表示数据库中的表记录。 配置MBG...

    xml读写入门教程

    8. `XML_day01_1112_v2_all.zip_FILES`和`XML_day02_1112_v2_all.zip_FILES`可能包含了XML解析的示例代码或练习材料,学习者可以通过解压并运行这些文件来实践XML读写操作。 综上所述,"xml读写入门教程"涵盖了XML...

    java_xml_pack-summer02_01.zip_XML java_document XML API_java xm

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等领域。在Java中,处理XML的主要API包括JAXB(Java Architecture for XML Binding)、DOM(Document Object ...

    Hadoop数据迁移--从Oracle向Hadoop.zip

    这需要建立Oracle与Hadoop之间的连接,并配置适当的JDBC驱动。 3. **编程接口**:使用Java、Python等编程语言,通过Hadoop的API如HDFS API或MapReduce API,直接编写程序进行数据迁移。这种方式灵活性高,但需要较...

    XML考试系统_xmlks(毕设 + 课设).zip

    在这个“XML考试系统_xmlks”项目中,我们可以看到一系列与XML相关的Java文件,这表明该系统可能使用XML来存储和处理考试数据。下面我们将详细探讨这些文件可能涉及的关键知识点。 1. **XML基本概念**: - XML是可...

    Base64及oracle11g的jar.zip

    在Java编程中,我们经常需要与数据库进行交互,特别是在处理大量文本数据时,Oracle数据库的CLOB(Character Large Object)类型非常实用。CLOB用于存储大量的字符数据,如XML文档、长篇文章或者任何非结构化的文本...

    blog.zip_jfinal_jfinal 日志配置_oracle

    接下来,我们谈谈如何在JFinal项目中与Oracle数据库进行交互。JFinal提供了对多种数据库的支持,包括Oracle。在使用Oracle之前,你需要在项目的`pom.xml`或`build.gradle`文件中添加Oracle的JDBC驱动依赖。例如,在...

    实战MATLAB之文件与数据接口技术.zip

    在MATLAB中,文件与数据接口技术是至关重要的部分,它允许用户读取、写入和处理各种格式的数据。这个压缩包"实战MATLAB之文件与数据接口技术.zip"包含了多个章节,每个章节可能深入探讨了不同的接口技术和应用场景。...

    不同类型文件读取工具类

    7. **数据库文件读取**: - JDBC(Java Database Connectivity):Java的标准接口,用于连接和操作各种数据库,如MySQL、Oracle等。 - ORM框架:如Hibernate和MyBatis,提供对象关系映射,简化数据库操作。 8. **...

    Oracle SQL Hand-Oracle工具 v5.1.zip

    Oracle SQL Hand-Oracle工具,是专为Oracle数据库开发人员及操作人员精心打造的一款Oracle开发工具(客户端工具)。 Oracle SQL Hand-Oracle工具特点如下: (1) 跨平台,能运行于平台 Windows(WIN7,XP...)、Linux 、...

Global site tag (gtag.js) - Google Analytics