📄 uploadfile.java
字号:
package com.nari.pmos.arch.common;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.StringTokenizer;
import javax.naming.NamingException;
import javax.sql.DataSource;
import com.nari.pmos.arch.bean.PubInfo;
public class UploadFile {
public boolean uploadFile(PubInfo pubInfo, String fileName, InputStream is)
throws IOException, NamingException {
boolean flag = false;
// 数据库处理
Connection con = null;
try {
javax.naming.Context initCtx = new javax.naming.InitialContext();
con = ((DataSource) initCtx.lookup("java:comp/env/jdbc/pmosDB"))
.getConnection();
// 事务处理
con.setAutoCommit(false);
PreparedStatement pst = null;
ResultSet rs = null;
ResultSet rs_seq = null;
// 处理上传文件
long pub_Info_Id = -1;
pst = con
.prepareStatement("SELECT SEQ_SYSTEM_PUBINFO.NEXTVAL FROM DUAL");
rs_seq = pst.executeQuery();
if (rs_seq.next()) {
pub_Info_Id = rs_seq.getLong(1);
System.out.println(pub_Info_Id);
}
pst = con
.prepareStatement("INSERT INTO SYSTEM_PUBINFO (PUB_ID, "
+ "PUB_TIME, PARTICIPANT_ID,PUB_INFO, TOPIC, FILE_NAME, ATTACHMENT ) "
+ "VALUES(?,?,?,?,?,?,EMPTY_BLOB())");
pst.setInt(1, (int) pub_Info_Id);
pst.setDate(2, new Date(new java.util.Date().getTime()));
pst.setInt(3, pubInfo.getParticipant_Id());
pst.setString(4, pubInfo.getPub_Info());
pst.setString(5, pubInfo.getTopic());
pst.setString(6, fileName);
pst.executeUpdate();
pst.close();
// 用for update方式锁定数据行
pst = con
.prepareStatement("select attachment from SYSTEM_PUBINFO where PUB_ID ="
+ pub_Info_Id + " for update");
rs = pst.executeQuery();
if (rs.next()) {
// 使用oracle.sql.BLOB类
// Object o = rs.getBlob("attachment");
// oracle.sql.BLOB blob = null;
// blob = (oracle.sql.BLOB) rs.getBlob("attachment");
weblogic.jdbc.vendor.oracle.OracleThinBlob blob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) rs
.getBlob("attachment");
// 到数据库的输出流
OutputStream outStream = blob.getBinaryOutputStream();
byte[] b = new byte[blob.getBufferSize()];
int len = 0;
while ((len = is.read(b)) != -1) {
outStream.write(b, 0, len);
}
outStream.close();
is.close();
}
System.out
.println("AAAAAAAAAA" + pubInfo.getStr_participant_List());
StringTokenizer strTokenizer = new StringTokenizer(pubInfo
.getStr_participant_List(), ":");
pst = con
.prepareStatement("INSERT INTO SYSTEM_PUBUSER VALUES(?,?)");
pst.setLong(1, pub_Info_Id);
while (strTokenizer.hasMoreTokens()) {
pst.setBigDecimal(2, new BigDecimal(strTokenizer.nextToken()));
pst.execute();
}
pst.close();
con.commit();
con.close();
flag = true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
con.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
public boolean uploadInfo(PubInfo pubInfo) throws IOException,
NamingException {
boolean flag = false;
// 数据库处理
Connection con = null;
try {
javax.naming.Context initCtx = new javax.naming.InitialContext();
con = ((DataSource) initCtx.lookup("java:comp/env/jdbc/pmosDB"))
.getConnection();
// 事务处理
con.setAutoCommit(false);
PreparedStatement pst = null;
ResultSet rs = null;
ResultSet rs_seq = null;
// 处理上传文件
long pub_Info_Id = -1;
pst = con
.prepareStatement("SELECT SEQ_SYSTEM_PUBINFO.NEXTVAL FROM DUAL");
rs_seq = pst.executeQuery();
if (rs_seq.next()) {
pub_Info_Id = rs_seq.getLong(1);
System.out.println(pub_Info_Id);
}
pst = con
.prepareStatement("INSERT INTO SYSTEM_PUBINFO (PUB_ID, PUB_TIME, PARTICIPANT_ID, PUB_INFO, TOPIC) "
+ "VALUES(?,?,?,?,?)");
pst.setInt(1, (int) pub_Info_Id);
pst.setDate(2, new Date(new java.util.Date().getTime()));
pst.setInt(3, pubInfo.getParticipant_Id());
pst.setString(4, pubInfo.getPub_Info());
pst.setString(5, pubInfo.getTopic());
pst.executeUpdate();
pst.close();
StringTokenizer strTokenizer = new StringTokenizer(pubInfo
.getStr_participant_List(), ":");
pst = con
.prepareStatement("INSERT INTO SYSTEM_PUBUSER VALUES(?,?)");
pst.setLong(1, pub_Info_Id);
while (strTokenizer.hasMoreTokens()) {
pst.setBigDecimal(2, new BigDecimal(strTokenizer.nextToken()));
pst.execute();
}
pst.close();
con.commit();
con.close();
flag = true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
con.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -