⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uploadfile.java

📁 该HttpProxy用于从Applet或Swing界面中访问Ejb和服务端的JavaBean。
💻 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 + -