db2和oracle更新xml大字段

package com.haitaiinc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import oracle.sql.CLOB;

public class JDBCtest {
    /**
     * 更新大字段
     * @param xml
     */
    public void testOracle(String xml){
        Connection conn = null;// 创建一个数据库连接
        PreparedStatement ps = null;// 创建预编译语句对象,一般都是用这个而不用Statement
        try{
            Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
            System.out.println("开始尝试连接数据库!");
            String url = "jdbc:oracle:" + "thin:@ip:port:htdb";
            String user = "user";// 用户名,系统默认的账户名
            String password = "pwd";// 你安装时选设置的密码
            conn = DriverManager.getConnection(url, user, password);// 获取连接
            System.out.println("连接成功!");
            ps = conn.prepareStatement("update inpcase.HOSPITAL_RECORD set XML_CONT=xmltype(?) where ipid=?");
            ps.setObject(1, getCLOB(conn,xml));
            ps.setString(2, "889686");
            ps.executeUpdate();
            conn.commit();
           
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            try{
                if (ps != null)
                    ps.close();
                if (conn != null)
                    conn.close();
                System.out.println("数据库连接已关闭!");
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    
    public void testDb2(String xml){
        Connection conn = null;// 创建一个数据库连接
        PreparedStatement ps = null;// 创建预编译语句对象,一般都是用这个而不用Statement
        try{
            Class.forName("com.ibm.db2.jcc.DB2Driver");// 加载Oracle驱动程序
            System.out.println("开始尝试连接数据库!");
            String url = "jdbc:db2://ip:port/htdb";
            String user = "user";// 用户名,系统默认的账户名
            String password = "pwd";// 你安装时选设置的密码
            conn = DriverManager.getConnection(url, user, password);// 获取连接
            System.out.println("连接成功!");
            ps = conn.prepareStatement("update inpcase.HOSPITAL_RECORD set XML_CONT=XMLPARSE (DOCUMENT cast(? as clob(10M)) PRESERVE WHITESPACE) where ipid=?");
            ps.setObject(1, getCLOB(conn,xml));
            ps.setString(2, "889686");
            ps.executeUpdate();
            conn.commit();
           
        }catch (Exception e){
            e.printStackTrace();
        }finally{
            try{
                if (ps != null)
                    ps.close();
                if (conn != null)
                    conn.close();
                System.out.println("数据库连接已关闭!");
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    
    private static CLOB getCLOB(Connection conn, String xmlData) throws SQLException {
        CLOB tempClob = CLOB.createTemporary(conn, true, 10);
        tempClob.putChars(1L, xmlData.toCharArray());
        return tempClob;
    }
    
}

 

posted on 2017-12-21 13:24 潘吉麟 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/jlpan-dev/p/8080081.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值