WMITarget.java 5.32 KB
package com.sitech.ismp.coll;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.Vector;

public class WMITarget extends CollBase {
	String ObjectIP = null;

	String DBType = "ORACLE";

	String Drivers = "oracle.jdbc.driver.OracleDriver";

	String driverpre = "jdbc:oracle:thin:@";

	String ObjectIPPort = "1521";

	String SIDName = null;

	String user = null;

	String passwd = null;

	boolean state = false;

	public WMITarget() {
	}

	public WMITarget(String IP, String cUser, String cPasswd) {
		init(IP, "1521", cUser, cPasswd);
	}

	public WMITarget(String IP, int cPort, String cUser, String cPasswd) {
		init(IP, String.valueOf(cPort), cUser, cPasswd);
	}

	public WMITarget(String IP, String cPort, String cUser, String cPasswd) {
		init(IP, cPort, cUser, cPasswd);
	}

	public void init(String IP) {
		this.ObjectIP = IP;
		setDBIP(IP);
	}

	public void init(String IP, String cPort, String cUser, String cPasswd) {
		setDBIP(IP);
		setPort(cPort);
		setUser(cUser);
		setPasswd(cPasswd);
	}

	public void init(String IP, String cPort, String cSID, String cUser,
			String cPasswd) {
		setDBIP(IP);
		setPort(cPort);
		setSIDName(cSID);
		setUser(cUser);
		setPasswd(cPasswd);
	}

	/*
	 * public void init(String IP,String cSID,String cUser, String cPasswd){
	 * this.ObjectIP = IP; setDBIP(IP ); setSIDName(cSID); setUser(cUser);
	 * setPasswd(cPasswd); }
	 */

	public void setDBIP(String ObjectIP) {
		this.ObjectIP = ObjectIP;
	}

	public void setDrivers(String Drivers) {
		this.Drivers = Drivers;
	}

	public void setPort(String cPort) {
		this.ObjectIPPort = cPort;
	}

	public void setSIDName(String cSIDName) {
		this.SIDName = cSIDName;
	}

	public void setUser(String cUser) {
		this.user = cUser;
	}

	public void setPasswd(String cPasswd) {
		this.passwd = cPasswd;
	}

	private transient Connection dbConnection = null;

	public Connection getConnection() {
		String url = "jdbc:oracle:thin:@" + ObjectIP + ":" + ObjectIPPort + ":"
				+ SIDName;
		try {
			if (dbConnection == null || dbConnection.isClosed()) {
				Class.forName(Drivers);

				dbConnection = DriverManager.getConnection(url, user, passwd);
			}
			state = true;
		} catch (Exception e) {
			state = false;
			e.printStackTrace();
		}
		return dbConnection;
	}

	public void releaseResources() {
		try {
			if (dbConnection != null && !dbConnection.isClosed()) {
				dbConnection.close();
			}
		} catch (SQLException se) {
			se.printStackTrace();
		}
	}

	public Vector getKPISet(String sql) {
		Vector recordSet = new Vector();
		try {
			getConnection();
			PreparedStatement pstmt = null;
			ResultSet result = null;
			pstmt = dbConnection.prepareStatement(sql);
			boolean hasResult = pstmt.execute();
			if (hasResult) {
				result = pstmt.getResultSet();
				ResultSetMetaData rsmd = result.getMetaData();
				int iColumnCount = rsmd.getColumnCount();
				while (result.next()) {
					java.util.Vector vTemp = new Vector();
					for (int i = 0; i < iColumnCount; i++) {
						Object oTemp = result.getObject(i + 1);
						String sTemp = oTemp == null ? "" : oTemp.toString();
						// System.out.println("sTemp1:" + sTemp);
						// shilt,2006.3.24 加上此句,httpadapter中调Mbean即失败,原因不明 sTemp
						// = Formater.fromDBString(sTemp);
						// System.out.println("sTemp2:" + sTemp);
						vTemp.addElement(sTemp.trim());
					}
					recordSet.add(vTemp);
				}
			}
			pstmt.close();
			dbConnection.commit();
		} catch (SQLException sqle) {
			System.out.println(sql);
			sqle.printStackTrace();
		} catch (Exception ae) {
			ae.printStackTrace();
		}
		return recordSet;
	}

	public boolean getState() {
		getConnection();
		return getState();
	}

	public String getSQLKPISetInfo(String sql) {
		if (sql == null || sql.equals(""))
			return "";
		String kpiinfo = "";
		Vector result = getKPISet(sql);
		String sTable = "";
		for (int i = 0; i < result.size(); i++) {
			Vector row = (Vector) result.elementAt(i);
			String sRow = "";
			for (int j = 0; j < row.size(); j++) {
				sRow = sRow + "," + row.elementAt(j);
			}
			sTable = sTable + "\n" + sRow;
		}
		return sTable;
		/*
		 * return result.toString();
		 */
	}

	public Vector getSQLKPISet(String sql) {
		return getSQLKPISet(sql, 0);
	}

	public Vector getSQLKPISet(String sql, int iPos) {
		if (sql == null || sql.equals(""))
			return null;
		Vector result = getKPISet(sql);
		Vector tmp_result = new Vector();
		for (int i = 0; i < result.size(); i++) {
			Vector record = (Vector) result.elementAt(i);
			String kpiinfo = (String) record.elementAt(iPos);
			tmp_result.add(kpiinfo);
		}
		return tmp_result;
	}

	public Vector getColumn(Vector recordSet, int col) {
		Vector ret = new Vector();

		for (int i = 0; i < recordSet.size(); i++) {
			ret.add(((Vector) recordSet.elementAt(i)).elementAt(col));
		}
		return ret;
	}

	public Vector getSQLKPIResult(String sql) {
		if (sql == null || sql.equals(""))
			return null;
		return getKPISet(sql);
	}

	public String getSQLKPIInfo(String sql) {
		if (sql == null || sql.equals(""))
			return "";
		String kpiinfo = "";
		Vector result = getKPISet(sql);

		if (result.size() > 0) {
			Vector record = (Vector) result.elementAt(0);
			kpiinfo = (String) record.elementAt(0);
		}
		return kpiinfo;
	}

	public void release() {
		releaseResources();
	}

}