目录:
创新互联2013年至今,是专业互联网技术服务公司,拥有项目成都网站建设、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元瑞丽做网站,已为上家服务,为瑞丽各地企业和个人服务,联系电话:18980820575
1、通用大字段jdbc存储方法
2、oracle Clob存储方法
3、oracle Blob存储方法
内容:
也不知道为什么,也许凭着自己是数据库厂商老大的地位,只有oracle对大字段的处理不符合jdbc的标准,因此才出现如下对oracle大字段特殊处理的方法,当然hibernate或ibatis是自己封装了如下的特殊处理。
1、通用大字段jdbc存储方法
像常用的数据库,如DB2、mysql、sqlserver、sybase等都是支持标准的大字段处理,这样才使得我们的程序能够写的很流畅很通用,当然这也是标准存在的意义。接下来按照标准的方式师范一下使用方法。
首先,分别构造两个类,实现java.sql包下的Blob、Clob接口,完成接口提供的方法,并为其增加相应的构造函数,如BlobImpl:
Java代码
- public class BlobImpl implements Blob {
- private byte[] binaryData = null;
- public BlobImpl(byte[] data) {
- setBinaryData(data);
- }
- ...
- }
如ClobImpl:
Java代码
- public class ClobImpl implements Clob {
- public ClobImpl(String data){
- this.charData = data;
- }
- ...
- }
然后,通过byte数组或String构造Blob、Clob实例:
Java代码
- Blob blob = new BlobImpl(data);
- Clob clob = new ClobImpl(data);
最后,通过PreparedStatement实例的setBlob方法将数据存储到数据库中。
Java代码
- pst.setBlob(fieldIndex, new BlobImpl((byte[]) value));
- pst.setClob(fieldIndex, new ClobImpl(((String) value)));
2、oracle Clob存储方法
oracle构造Clob实例时,需要持有Connection,然后利用oracle Clob类提供的静态方法构造出空的clob实例,最后将数据写入该clob实例中,并通过上述方法存储到数据库中。构造示例代码如下:
Java代码
- public CLOB getCLOB(Connection conn, String data) throws Exception {
- CLOB clob = null;
- Writer writer = null;
- try {
- clob = CLOB.createTemporary(conn, false, CLOB.DURATION_SESSION);
- writer = clob.getCharacterOutputStream();
- writer.write((data).toCharArray());
- writer.flush();
- } catch (Exception e) {
- throw e;
- } finally {
- if (writer != null) {
- try {
- writer.close();
- } catch (IOException e) {
- Logger.log(Logger.WARNING, e.getMessage(), e);
- e.printStackTrace();
- }
- }
- }
- return clob;
- }
3、oracle Blob存储方法
oracle构造Blob实例时,同样需要持有Connection,然后利用oracle Blob类提供的静态方法构造出空的blob实例,最后将数据写入该blob实例中,并通将其存储到数据库中。构造示例代码如下:
Java代码
- public BLOB getBLOB(Connection conn, byte[] data) throws Exception {
- BLOB blob = null;
- OutputStream output = null;
- try {
- blob = BLOB.createTemporary(conn, false, BLOB.DURATION_SESSION);
- output = blob.getBinaryOutputStream();
- output.write(data, 0, data.length);
- } catch (Exception e) {
- throw e;
- } finally {
- if (output != null) {
- try {
- output.close();
- } catch (IOException e) {
- Logger.log(Logger.WARNING, e.getMessage(), e);
- e.printStackTrace();
- }
- }
- }
- return blob;
- }
【编辑推荐】
标题名称:Oracle大字段纯jdbc存储方法
网站地址:http://www.csdahua.cn/qtweb/news40/26540.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网