自己做的用JAVA往ORACLE新增和更新流数据

新增流数据:
public void addStreamData(String fin, String fout, int logId) throws PMSException{

String SQL_ADD = " INSERT INTO MIS_STREAMDATA(STREAMDATA_ID, MAIN_CONTENT, LOG_ID, STREAM_IN, STREAM_OUT) "
+ " VALUES(?, ?, ?, empty_blob(), empty_blob()) ";

String SQL_UPDATE = " SELECT t.STREAM_IN,t.STREAM_OUT FROM MIS_STREAMDATA t WHERE t.STREAMDATA_ID = ? FOR UPDATE ";

ConnUtil connUtil = ConnUtil.getInstance();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
int id = InfIDFactory.createId();
try {
//1、新增一条记录,不保存流数据
conn = connUtil.getConnection();
[color=red]conn.setAutoCommit(false);[/color]特别注意不要漏掉这个语句,否则会出错!
ps = conn.prepareStatement(SQL_ADD);
ps.setInt(1, id);
ps.setString(2, "");//先让主要内容为空
ps.setInt(3, logId);
ps.execute();
ps.close();
[color=blue]conn.commit();//提交
connUtil.closeConn(conn, ps, rs);//[/color]关闭连接

//2、把流数据更新进数据库中
conn = connUtil.getConnection();
[color=red]conn.setAutoCommit(false);[/color] ps = conn.prepareStatement(SQL_UPDATE);
ps.setInt(1, id);
rs = ps.executeQuery();

if(rs!= null && rs.next()){

/*
* 1、处理输入MIS流BLOB对象
*/
if(fin != null && !fin.equals("")){
BLOB blobIn = ((OracleResultSet)rs).getBLOB("STREAM_IN"); // 得到输入MIS流BLOB对象
OutputStream out = blobIn.getBinaryOutputStream(); // 建立输出流
System.out.println("返回的数据如下in:");
System.out.println(fin);
int len = fin.getBytes().length;
out.write(fin.getBytes(), 0, len);
out.close();
}

/*
* 2、处理MIS输出流BLOB对象
*/
if(fout != null && !fout.equals("")){
BLOB blobOut = ((OracleResultSet)rs).getBLOB("STREAM_OUT"); // 得到输入MIS流BLOB对象
OutputStream out = blobOut.getBinaryOutputStream(); // 建立输出流
System.out.println("返回的数据如下out:");
System.out.println(fout);
int len = fout.getBytes().length;
out.write(fout.getBytes(), 0, len);
out.close();
}
}
conn.commit();
} catch(Exception ex){
try{
conn.rollback();
deleteByStreamDataId(id, conn);
} catch(SQLException sqle){
String message = "更新接口服务器数据库异常!";
throw new PMSException(message, sqle);
}
String message = "更新接口服务器数据库异常!";
throw new PMSException(message, ex);
} finally {
connUtil.closeConn(conn, ps, rs);
}
}
修改流数据:
public void updateStreamData(String fin, String fout, int streamDataId) throws PMSException{

String SQL_UPDATE = " SELECT t.STREAM_IN,t.STREAM_OUT FROM MIS_STREAMDATA t WHERE t.STREAMDATA_ID = ? FOR UPDATE ";

ConnUtil connUtil = ConnUtil.getInstance();
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {

//1、把流数据更新进数据库中
conn = connUtil.getConnection();
[color=red]conn.setAutoCommit(false);[/color] ps = conn.prepareStatement(SQL_UPDATE);
ps.setInt(1, streamDataId);
rs = ps.executeQuery();

if(rs!= null && rs.next()){

/*
* 1、处理输入MIS流BLOB对象
*/
if(fin != null && !fin.equals("")){
BLOB blobIn = ((OracleResultSet)rs).getBLOB("STREAM_IN"); // 得到输入MIS流BLOB对象
OutputStream out = blobIn.getBinaryOutputStream(); // 建立输出流
System.out.println("返回的数据如下in:");
System.out.println(fin);
int len = fin.getBytes().length;
out.write(fin.getBytes(), 0, len);
out.close();
}

/*
* 2、处理MIS输出流BLOB对象
*/
if(fout != null && !fout.equals("")){
BLOB blobOut = ((OracleResultSet)rs).getBLOB("STREAM_OUT"); // 得到输入MIS流BLOB对象
OutputStream out = blobOut.getBinaryOutputStream(); // 建立输出流
System.out.println("返回的数据如下out:");
System.out.println(fout);
int len = fout.getBytes().length;
out.write(fout.getBytes(), 0, len);
out.close();
}
}
conn.commit();
} catch(Exception ex){
try{
conn.rollback();
} catch(SQLException sqle){
String message = "更新接口服务器数据库异常!";
throw new PMSException(message, sqle);
}
String message = "更新接口服务器数据库异常!";
throw new PMSException(message, ex);
} finally {
connUtil.closeConn(conn, ps, rs);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值