`
lgd_java2eye
  • 浏览: 189539 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

插入clob数据(template data)

    博客分类:
  • java
阅读更多
package com.icitic.iccard.dp.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.sql.Connection;
import java.sql.PreparedStatement;

import javax.naming.InitialContext;

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.log4j.Logger;

public class Test {

	private static final Logger LOG = Logger.getLogger(PrepareTester.class);

	private static final String NAME_DATASOURCE = "artery-datasource";

	private InitialContext context;

	public static void main(String[] args) {
		Test test = new Test();
		try {

			try {
				test.setUp();

				// test.runTest();
			} catch (Exception e) {
				LOG.debug(e.getMessage(), e);
			} finally {
				BufferedReader reader = new BufferedReader(
						new InputStreamReader(System.in));
				for (String line; (line = reader.readLine()) != null;) {
					if (line.equals("exit")) {
						break;
					}
				}

				test.tearDown();
			}
		} catch (Exception e) {
			LOG.debug(e.getMessage(), e);
		}

	}

	private void runTest() throws Exception {
		// Map<String, Object> params = new HashMap<String, Object>();
		// params.put(Constants.ATTRIB_BATCH_NO, "13");
		// params.put(Constants.ATTRIB_FINAL_NAME, "test20110425");
		// params.put("debug", false);
		// //engine.execute("task1", null, 0, false, params);
		// engine.execute("preparing", null, 0, true, params);
	}

	protected void setUp() throws Exception {
		System.setProperty("ARTERY_HOME", "src/test/resources");
		// 初始化JNDI
		System.setProperty("java.naming.factory.initial",
				"org.osjava.sj.memory.MemoryContextFactory");
		System.setProperty("org.osjava.sj.jndi.shared", "true");

		BasicDataSource datasource = new BasicDataSource();
		/*
		 * datasource.setDriverClassName("com.mysql.jdbc.Driver");
		 * datasource.setUrl(
		 * "jdbc:mysql://localhost/artery?useUnicode=true&characterEncoding=utf8&characterResultSet=utf8"
		 * ); datasource.setUsername("root"); datasource.setPassword(""); /
		 */
		// datasource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
		// datasource.setUrl("jdbc:oracle:thin:@10.14.8.2:1521:ora10g");
		// datasource.setUsername("ic_dp");
		// datasource.setPassword("password");

		datasource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
		datasource.setUrl("jdbc:oracle:thin:@10.200.68.13:1522:arterydb");
		datasource.setUsername("artery");
		datasource.setPassword("password");
		// */
		context = new InitialContext();
		context.bind(NAME_DATASOURCE, datasource);
		Connection con = datasource.getConnection();
		// String sqlupdate="";
		// 模板插入库
		// String
		// sql="INSERT INTO ARTERY.TEMPLATE(TEMPLATE_ID, APP_ID, TEMPLATE_NAME, TEMPLATE_DESC, TEMP_CONTENT, CREATE_DATE, CREATE_TIME, CREATOR) VALUES(?, ?, ?, ?, ?, ?, ?, ?)";
		// PreparedStatement ps= con.prepareStatement(sql);
		// ps.setInt(1, 0);
		// ps.setString(2, "1");
		// ps.setString(3, "中国银行模板");
		// ps.setString(4, "模板描述");
		// String
		// orgData="<pboc>#macro(tlv $tag $value)$dp.tlv($tag, $value)#end#set ($appLabel = \"\")#set ($tag5A = $dp.tlv(\"5a\", $account))#set ($tag5F34 = $dp.tlv(\"5f34\", $pan-serial))#set ($tag5F28 = $dp.tlv(\"5f28\", $country-code))<tag57>#tlv(\"57\", $dp.decryptEncrypt($track2))</tag57><tag5F20>#tlv(\"5f20\", $name)</tag5F20><tag9F0B>#tlv(\"9f0b\", $name-ext)</tag9F0B><tag9F61>#tlv(\"9f61\", $cert-no)</tag9F61><tag9F62>#tlv(\"9f62\", $cert-type)</tag9F62><tag5A>$tag5A</tag5A><tag5F34>$tag5F34</tag5F34><tag5F28>$tag5F28</tag5F28><!-- start --><tag90>#tlv(\"90\", $issuer-pk)</tag90><tag92>#tlv(\"92\", $issuer-pk-rem)</tag92><tag9F32>#tlv(\"9f32\", $issuer-pk-exp)</tag9F32><tag8F>#tlv(\"8F\", $ca-pk-idx)</tag8F><tag9F46_pboc>#tlv(\"9f4601\", $dp.genCertificate($pboc_cert_data))</tag9F46_pboc><tag9F46_ecash>#tlv(\"9f4602\",$dp.genCertificate($ecash_cert_data))</tag9F46_ecash><!-- end --><tag9F47>#tlv(\"9f47\", $dp.getExponent($ic_exponent))</tag9F47><tag9F48>#tlv(\"9f48\",$dp.genCertificate($modulus))</tag9F48><!-- start --><tag93_pboc>#tlv(\"9301\", $dp.genSAD($pboc_static_data))</tag93_pboc><tag93_ecash>#tlv(\"9302\", $dp.genSAD($ecash_static_data))</tag93_ecash><!-- end --><tag9F49>#tlv(\"9f49\", \"9F3704\")</tag9F49><tag5F25>#tlv(\"5f25\", $effect-date)</tag5F25><tag5F24>#tlv(\"5f24\", $expiry-date)</tag5F24><ecash-8E>#tlv(\"8e\", \"00000000000000001F03\")</ecash-8E><ecash-9F0E>#tlv(\"9f0e\", \"0010800000\")</ecash-9F0E><ecash-9F0F>#tlv(\"9f0f\", \"D8683CF800\")</ecash-9F0F><ecash-9F0D>#tlv(\"9f0d\", \"D8603CA800\")</ecash-9F0D><ecash-9F68>#tlv(\"9f68\", \"81400000\")</ecash-9F68><tag8E>#tlv(\"8e\", \"000000000000000002031F00\")</tag8E><tag9F0E>#tlv(\"9f0e\", \"0010980000\")</tag9F0E><tag9F0F>#tlv(\"9f0f\", \"D86804F800\")</tag9F0F><tag9F0D>#tlv(\"9f0d\", \"D86004A800\")</tag9F0D><tag8C>#tlv(\"8c\", \"9F02069F03069F1A0295055F2A029A039C019F37049F21039F4E14\")</tag8C><tag8D>#tlv(\"8d\", \"8A029F02069F03069F1A0295055F2A029A039C019F37049F2103\")</tag8D><tag9F07>#tlv(\"9f07\", \"FF00\")</tag9F07><tag9F08>#tlv(\"9f08\", \"0020\")</tag9F08><tag5F30>#tlv(\"5f30\", \"0201\")</tag5F30><tag9F1F>#tlv(\"9f1f\", $track1)</tag9F1F><tag9F14>#tlv(\"9f14\", $lowerOfflineConsLim)</tag9F14><tag9F23>#tlv(\"9f23\", $upperOfflineConsLim)</tag9F23><tag9F74>#tlv(\"9f74\", $dp.hex(\"ECC001\"))</tag9F74><tag9F79>#tlv(\"9f79\", $ecashBalance)</tag9F79><tag9F51>#tlv(\"9f51\", \"0156\")</tag9F51><tag9F77>#tlv(\"9f77\", $balance-limit)</tag9F77><tag9F78>#tlv(\"9f78\", $amount-limit)</tag9F78><tag9F6B>#tlv(\"9f6b\", $CVM-limit)</tag9F6B><tag9F6D>#tlv(\"9f6d\", $reset-threshold)</tag9F6D><tag9F6C>#tlv(\"9f6c\", \"0000\")</tag9F6C><tag9F5D>#tlv(\"9f5d\", \"01\")</tag9F5D><tag9F56>#tlv(\"9f56\", \"80\")</tag9F56><tag9F4F>#tlv(\"9f4f\", \"9A039F21039F02069F03069F1A025F2A029F4E149C019F3602\")</tag9F4F><tag9F53>#tlv(\"9f53\", $offline-limit)</tag9F53><tag9F54>#tlv(\"9f54\", $offline-min-amt)</tag9F54><tag9F5C>#tlv(\"9f5c\", $offline-max-amt)</tag9F5C><tag9F58>#tlv(\"9f58\", $offline-min-count)</tag9F58><tag9F59>#tlv(\"9f59\", $offline-max-count)</tag9F59><tag9F52>#tlv(\"9f52\", \"C000\")</tag9F52><!-- 这是注释 --><udk>$dp.getDES($udk_ac)</udk><udk-enc>$dp.getDES($udk_enc)</udk-enc><udk-mac>$dp.getDES($udk_mac)</udk-mac><kcv>$dp.getKCV($udk_ac, $udk_enc, $udk_mac)</kcv><crt1>$dp.getCRT($rsa_p)</crt1><crt2>$dp.getCRT($rsa_q)</crt2><crt3>$dp.getCRT($rsa_dmp1)</crt3><crt4>$dp.getCRT($rsa_dmq1)</crt4><crt5>$dp.getCRT($rsa_iqmp)</crt5>#set ($contactA5 = [$dp.tlv(\"50\", $appLabel), $dp.tlv(\"87\", \"01\"), $dp.tlv(\"9f38\", \"9F7A019F02065F2A02\"), $dp.tlv(\"5f2d\", \"7A68\"), $dp.tlv(\"9f11\", \"01\"), $dp.tlv(\"9f12\", \"\"), $dp.tlv(\"bf0c\", $dp.concat([$dp.tlv(\"9f4d\", \"0B0A\")]))])<contact-based>#tlv(\"a5\", $dp.concat($contactA5))</contact-based>#set ($noncontA5 = [$dp.tlv(\"50\", $appLabel), $dp.tlv(\"87\", \"01\"), $dp.tlv(\"9f38\", \"9F66049F02069F37045F2A02\"), $dp.tlv(\"5f2d\", \"7A68\"), $dp.tlv(\"9f11\", \"01\"), $dp.tlv(\"9f12\", \"\")])<non-contact>#tlv(\"a5\", $dp.concat($noncontA5))</non-contact><aip1>#tlv(\"82\", \"7C00\")</aip1><afl1>#tlv(\"94\", \"080102001001040118010200\")</afl1><aip2>#tlv(\"82\", \"7C00\")</aip2><afl2>#tlv(\"94\", \"10010501\")</afl2><tag9F10>#tlv(\"9f10\", \"07800103000000010A01\")</tag9F10></pboc>";
		// StringReader reader=new StringReader(orgData);
		// ps.setCharacterStream(5, reader, orgData.length());
		// ps.setString(6, "");
		// ps.setString(7, "");
		// ps.setString(8, "");
		// ps.execute();
		String updatesqll = " UPDATE ARTERY.TEMPLATE   SET  TEMP_CONTENT=? WHERE TEMPLATE_ID=? ";
		PreparedStatement ps = con.prepareStatement(updatesqll);
		String orgData = "<pboc>#macro(tlv $tag $value)$dp.tlv($tag, $value)#end#set ($appLabel = \"\")#set ($tag5A = $dp.tlv(\"5a\", $account))#set ($tag5F34 = $dp.tlv(\"5f34\", $pan-serial))#set ($tag5F28 = $dp.tlv(\"5f28\", $country-code))<tag57>#tlv(\"57\", $dp.decryptEncrypt($track2))</tag57><tag5F20>#tlv(\"5f20\", $name)</tag5F20><tag9F0B>#tlv(\"9f0b\", $name-ext)</tag9F0B><tag9F61>#tlv(\"9f61\", $cert-no)</tag9F61><tag9F62>#tlv(\"9f62\", $cert-type)</tag9F62><tag5A>$tag5A</tag5A><tag5F34>$tag5F34</tag5F34><tag5F28>$tag5F28</tag5F28><!-- start --><tag90>#tlv(\"90\", $issuer-pk)</tag90><tag92>#tlv(\"92\", $issuer-pk-rem)</tag92><tag9F32>#tlv(\"9f32\", $issuer-pk-exp)</tag9F32><tag8F>#tlv(\"8F\", $ca-pk-idx)</tag8F><tag9F46_pboc>#tlv(\"9f46\", $dp.genCertificate($pboc_cert_data))</tag9F46_pboc><!-- end --><tag9F47>#tlv(\"9f47\", $dp.getExponent($ic_exponent))</tag9F47><tag9F48>#tlv(\"9f48\",$dp.genCertificate($modulus))</tag9F48><!-- start --><tag93_pboc>#tlv(\"9301\", $dp.genSAD($pboc_static_data))</tag93_pboc><tag93_ecash>#tlv(\"9302\", $dp.genSAD($ecash_static_data))</tag93_ecash><!-- end --><tag9F49>#tlv(\"9f49\", \"9F3704\")</tag9F49><tag5F25>#tlv(\"5f25\", $effect-date)</tag5F25><tag5F24>#tlv(\"5f24\", $expiry-date)</tag5F24><ecash-8E>#tlv(\"8e\", \"00000000000000001F03\")</ecash-8E><ecash-9F0E>#tlv(\"9f0e\", \"0010800000\")</ecash-9F0E><ecash-9F0F>#tlv(\"9f0f\", \"D8683CF800\")</ecash-9F0F><ecash-9F0D>#tlv(\"9f0d\", \"D8603CA800\")</ecash-9F0D><ecash-9F68>#tlv(\"9f68\", \"81400000\")</ecash-9F68><tag8E>#tlv(\"8e\", \"000000000000000002031F00\")</tag8E><tag9F0E>#tlv(\"9f0e\", \"0010980000\")</tag9F0E><tag9F0F>#tlv(\"9f0f\", \"D86804F800\")</tag9F0F><tag9F0D>#tlv(\"9f0d\", \"D86004A800\")</tag9F0D><tag8C>#tlv(\"8c\", \"9F02069F03069F1A0295055F2A029A039C019F37049F21039F4E14\")</tag8C><tag8D>#tlv(\"8d\", \"8A029F02069F03069F1A0295055F2A029A039C019F37049F2103\")</tag8D><tag9F07>#tlv(\"9f07\", \"FF00\")</tag9F07><tag9F08>#tlv(\"9f08\", \"0020\")</tag9F08><tag5F30>#tlv(\"5f30\", \"0201\")</tag5F30><tag9F1F>#tlv(\"9f1f\", $track1)</tag9F1F><tag9F14>#tlv(\"9f14\", $lowerOfflineConsLim)</tag9F14><tag9F23>#tlv(\"9f23\", $upperOfflineConsLim)</tag9F23><tag9F74>#tlv(\"9f74\", $dp.hex(\"ECC001\"))</tag9F74><tag9F79>#tlv(\"9f79\", $ecashBalance)</tag9F79><tag9F51>#tlv(\"9f51\", \"0156\")</tag9F51><tag9F77>#tlv(\"9f77\", $balance-limit)</tag9F77><tag9F78>#tlv(\"9f78\", $amount-limit)</tag9F78><tag9F6B>#tlv(\"9f6b\", $CVM-limit)</tag9F6B><tag9F6D>#tlv(\"9f6d\", $reset-threshold)</tag9F6D><tag9F6C>#tlv(\"9f6c\", \"0000\")</tag9F6C><tag9F5D>#tlv(\"9f5d\", \"01\")</tag9F5D><tag9F56>#tlv(\"9f56\", \"80\")</tag9F56><tag9F4F>#tlv(\"9f4f\", \"9A039F21039F02069F03069F1A025F2A029F4E149C019F3602\")</tag9F4F><tag9F53>#tlv(\"9f53\", $offline-limit)</tag9F53><tag9F54>#tlv(\"9f54\", $offline-min-amt)</tag9F54><tag9F5C>#tlv(\"9f5c\", $offline-max-amt)</tag9F5C><tag9F58>#tlv(\"9f58\", $offline-min-count)</tag9F58><tag9F59>#tlv(\"9f59\", $offline-max-count)</tag9F59><tag9F52>#tlv(\"9f52\", \"C000\")</tag9F52><!-- 这是注释 --><udk>$dp.getDES($udk_ac)</udk><udk-enc>$dp.getDES($udk_enc)</udk-enc><udk-mac>$dp.getDES($udk_mac)</udk-mac><kcv>$dp.getKCV($udk_ac, $udk_enc, $udk_mac)</kcv><crt1>$dp.getCRT($rsa_p)</crt1><crt2>$dp.getCRT($rsa_q)</crt2><crt3>$dp.getCRT($rsa_dmp1)</crt3><crt4>$dp.getCRT($rsa_dmq1)</crt4><crt5>$dp.getCRT($rsa_iqmp)</crt5>#set ($contactA5 = [$dp.tlv(\"50\", $appLabel), $dp.tlv(\"87\", \"01\"), $dp.tlv(\"9f38\", \"9F7A019F02065F2A02\"), $dp.tlv(\"5f2d\", \"7A68\"), $dp.tlv(\"9f11\", \"01\"), $dp.tlv(\"9f12\", \"\"), $dp.tlv(\"bf0c\", $dp.concat([$dp.tlv(\"9f4d\", \"0B0A\")]))])<contact-based>#tlv(\"a5\", $dp.concat($contactA5))</contact-based>#set ($noncontA5 = [$dp.tlv(\"50\", $appLabel), $dp.tlv(\"87\", \"01\"), $dp.tlv(\"9f38\", \"9F66049F02069F37045F2A02\"), $dp.tlv(\"5f2d\", \"7A68\"), $dp.tlv(\"9f11\", \"01\"), $dp.tlv(\"9f12\", \"\")])<non-contact>#tlv(\"a5\", $dp.concat($noncontA5))</non-contact><aip1>#tlv(\"82\", \"7C00\")</aip1><afl1>#tlv(\"94\", \"080102001001040118010200\")</afl1><aip2>#tlv(\"82\", \"7C00\")</aip2><afl2>#tlv(\"94\", \"10010501\")</afl2><tag9F10>#tlv(\"9f10\", \"07800103000000010A01\")</tag9F10></pboc>";
		StringReader reader = new StringReader(orgData);
		ps.setCharacterStream(1, reader, orgData.length());
		ps.setInt(2, 1);
		ps.execute();

	}

	protected void tearDown() throws Exception {
		context.unbind(NAME_DATASOURCE);
	}

}

 

分享到:
评论

相关推荐

    向Oracle数据库插入Clob大段文本解决方法

    代码片段展示了通过创建`OracleParameter`对象并设置其类型为`OracleType.Clob`来插入CLOB数据的基本方法。具体步骤如下: 1. **构建SQL语句**:首先构造一个INSERT语句,其中包含CLOB字段的占位符`(:lgContent)`。...

    Oracle如何插入CLOB字段值

    Oracle如何插入CLOB字段值,附件为简单的示例代码。Oracle如何插入CLOB字段值,附件为简单的示例代码。

    Mybatis 处理 CLOB、BLOB 类型数据

    在测试方法中,可以使用如下方式插入数据: ```java public void test_insertUserPic(){ String name = "tom"; String bio = "Can be a very long string"; byte[] pic = null; try { // 读取用户图片 // ......

    CLOB、BLOB___CLOB与BLOB的区别

    在插入 CLOB 数据时,可以使用 PreparedStatement 的 setString 方法来插入数据;在更新 CLOB 数据时,可以使用 ResultSet 的 updateClob 方法来更新数据。 CLOB 和 BLOB 是两种不同的数据库类型,用于存储不同的...

    如何将DB2数据库中的大对象(BLOB,CLOB)数据类型复制到Oracle数据库中

    在数据库迁移或数据同步的过程中,有时需要将含有大对象(LOB,包括BLOB和CLOB)的数据从一个数据库系统复制到另一个不完全支持LOB的数据库系统。本例中,我们讨论如何将DB2数据库中的BLOB数据类型复制到Oracle...

    iBATIS操作Oracle CLOB数据

    2. **插入操作**:当向包含CLOB字段的表插入数据时,可以使用`&lt;sql&gt;`和`&lt;insert&gt;`标签,通过`&lt;bind&gt;`或`&lt;param&gt;`来传递CLOB值。例如: ```xml INSERT INTO your_table (id, large_text) VALUES (#{id}, empty_...

    ActiveXObject和Clob字段的插入更新

    总结,ActiveXObject和Clob字段分别代表了客户端脚本与服务器端组件的交互以及数据库中存储大量文本数据的方式。了解并熟练掌握这两者,对于进行高效、跨平台的Web应用开发和数据库管理至关重要。

    jdbc 处理clob类型字段

    首先,创建一个Clob对象,并将待插入的文本数据写入到Clob对象中,然后在SQL语句中设置对应的参数。例如: ```java String sql = "INSERT INTO my_table (my_clob_column) VALUES (?)"; Connection conn = ... // ...

    ORA-01461 仅可以为插入 LONG 列的 LONG 值赋值”解决办法

    LOB 数据类型有四种:BLOB(Binary Large OBject)、CLOB(Character Large OBject)、NCLOB(National Character Large OBject)和 BFILE(Binary File)。 现在,我们回到 ORA-01461 错误解决办法。该错误的解决...

    Oracle中CLOB类型文字处理代码

    - 使用`EMPTY_CLOB()`函数可以插入一个空的CLOB值,然后通过PL/SQL过程逐块写入数据。 - 直接插入字符串,但需要注意长度不能超过4000字符,否则需使用`TO_CLOB()`函数转换为CLOB类型。 ```sql INSERT INTO my_...

    向Oracle数据库的CLOB属性插入数据报字符串过长错误

    今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误。 网上说用流来处理,没有这么做。这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了。 下面是这段代码: if(...

    clob增加、修改

    插入CLOB数据通常涉及到以下步骤: 1. **创建空的CLOB对象**:使用`empty_clob()`函数创建一个空的CLOB对象。 2. **获取CLOB的输出流**:使用`getCharacterOutputStream()`方法获取CLOB对象的输出流。 3. **写入数据...

    运用Java如何存取Oracle中的CLOB类型字段

    插入CLOB数据通常涉及两个步骤:首先插入一个空的CLOB对象,然后更新这个CLOB对象。在示例代码中,可以看到使用`empty_clob()`函数来创建一个空的CLOB对象,并通过`CLOB.setString()`方法向CLOB中写入数据。此外,还...

    关于Oracle的 Clob数据类型在Hibernate中的应用小结

    Oracle的Clob数据类型在数据库中用于存储大对象(Large Object),如长文本、XML文档等大量字符数据。在Hibernate框架中,Clob类型的字段处理是数据库操作中的一个关键环节,尤其是在处理大量文本数据时。以下是对...

    Oracle,Clob,Blob数据存取的Java代码

    对于BLOB数据,我们可以使用`PreparedStatement`的`setBinaryStream()`方法插入数据,`ResultSet`的`getBinaryStream()`方法读取数据。假设我们有一个包含BLOB字段的表`test_blob`: ```java String insertBlobSql ...

    将长于4000字符的字符串转化为CLOB类型存入数据库

    在Oracle数据库中,当我们遇到需要存储超过4000个字符的文本数据时,使用CLOB(Character Large Object)类型便显得尤为重要。下面将详细介绍如何在C#环境下通过Oracle.NET接口实现将长于4000字符的字符串转化为CLOB...

    向orcale数据库中插入一个txt格式的文本文档,即clob类型的数据

    向orcale数据库中插入一个txt格式的文本文档,即clob类型的数据

    Sqlserver大数据量插入速度慢或丢失数据的解决方法

    1. **并发控制不当**:多线程或多个进程同时插入数据时,如果没有适当的并发控制机制,可能会导致数据丢失。 2. **事务管理问题**:如果在事务未提交的情况下就发生异常或者中断,则可能导致部分数据未能成功写入...

    java读写oracle clob字段

    - 当需要将字符串数据插入CLOB字段时,可以将字符串转换为`Reader`对象。这里使用`StringReader`: ```java Reader clobReader = new StringReader(text); ``` 4. **设置参数**: - `PreparedStatement`支持...

Global site tag (gtag.js) - Google Analytics