612 lines
20 KiB
Java
612 lines
20 KiB
Java
package wenrgise.ejb.common.utility;
|
|
|
|
import java.sql.BatchUpdateException;
|
|
import java.sql.CallableStatement;
|
|
import java.sql.Connection;
|
|
import java.sql.Date;
|
|
import java.sql.PreparedStatement;
|
|
import java.sql.ResultSet;
|
|
import java.sql.ResultSetMetaData;
|
|
import java.sql.SQLException;
|
|
import java.sql.Timestamp;
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import javax.naming.InitialContext;
|
|
import javax.sql.DataSource;
|
|
import wenrgise.common.exception.EnrgiseSystemException;
|
|
import wenrgise.ejb.common.helper.DBObject;
|
|
import wenrgise.ejb.common.helper.InputDBObject;
|
|
import wenrgise.ejb.common.helper.QueryRow;
|
|
import wenrgise.ejb.common.helper.QueryValue;
|
|
|
|
public class DBUtilitiesBean {
|
|
private String sDbName = "jdbc/conDS";
|
|
|
|
private ArrayList oOutParameters = null;
|
|
|
|
private Connection oCon;
|
|
|
|
private ResultSet oRs;
|
|
|
|
private Connection oConn = null;
|
|
|
|
private DataSource oDataSource = null;
|
|
|
|
private PreparedStatement oDynamicBatchCall = null;
|
|
|
|
private CallableStatement oBatchCall = null;
|
|
|
|
private Connection oBatchCon = null;
|
|
|
|
private Connection oPreParameterCon = null;
|
|
|
|
private PreparedStatement oPreParameter = null;
|
|
|
|
private Connection oPreUpsertCon = null;
|
|
|
|
private PreparedStatement oPreUpsert = null;
|
|
|
|
private boolean bDynamic = false;
|
|
|
|
public DBUtilitiesBean() {}
|
|
|
|
public DBUtilitiesBean(boolean bDynamic) {
|
|
this.bDynamic = bDynamic;
|
|
}
|
|
|
|
public void createBatch(String sProcName) throws EnrgiseSystemException {
|
|
InitialContext oInitCont = null;
|
|
String sParam = String.valueOf(String.valueOf("{ call ").concat(String.valueOf(sProcName))).concat(String.valueOf("}"));
|
|
boolean bCreateCoonectionError = false;
|
|
try {
|
|
Object dataSourceObj = ServiceLocator.getLocator().getLocalService(this.sDbName);
|
|
this.oDataSource = (DataSource)dataSourceObj;
|
|
this.oBatchCon = this.oDataSource.getConnection();
|
|
bCreateCoonectionError = true;
|
|
if (!this.bDynamic) {
|
|
if (this.oBatchCall != null) {
|
|
this.oBatchCall.close();
|
|
this.oBatchCall = null;
|
|
}
|
|
this.oBatchCall = this.oBatchCon.prepareCall(sParam);
|
|
bCreateCoonectionError = false;
|
|
} else {
|
|
if (this.oDynamicBatchCall != null) {
|
|
this.oDynamicBatchCall.close();
|
|
this.oDynamicBatchCall = null;
|
|
}
|
|
this.oDynamicBatchCall = this.oBatchCon.prepareStatement(sParam);
|
|
bCreateCoonectionError = false;
|
|
}
|
|
} catch (SQLException oExc) {
|
|
System.out.println(oExc.getMessage());
|
|
throw new EnrgiseSystemException(oExc);
|
|
} finally {
|
|
try {
|
|
if (this.oBatchCon != null && bCreateCoonectionError) {
|
|
if (!this.oBatchCon.isClosed())
|
|
this.oBatchCon.close();
|
|
this.oBatchCon = null;
|
|
}
|
|
} catch (SQLException sQLException) {}
|
|
}
|
|
}
|
|
|
|
public void addToBatch(ArrayList oParameters) throws EnrgiseSystemException {
|
|
if (!this.bDynamic) {
|
|
addToProcBatch(oParameters);
|
|
} else {
|
|
addToDynamicBatch(oParameters);
|
|
}
|
|
}
|
|
|
|
private void addToDynamicBatch(ArrayList oParameters) throws EnrgiseSystemException {
|
|
try {
|
|
Iterator oIter = oParameters.iterator();
|
|
while (oIter.hasNext()) {
|
|
InputDBObject oObject = oIter.next();
|
|
inspectExecuteParameter(oObject, this.oDynamicBatchCall);
|
|
}
|
|
this.oBatchCall.addBatch();
|
|
} catch (SQLException oSqlEx) {
|
|
System.out.println(oSqlEx.getMessage());
|
|
throw new EnrgiseSystemException(oSqlEx);
|
|
} finally {
|
|
try {
|
|
if (this.oBatchCon != null) {
|
|
if (!this.oBatchCon.isClosed())
|
|
this.oBatchCon.close();
|
|
this.oBatchCon = null;
|
|
}
|
|
} catch (SQLException sQLException) {}
|
|
}
|
|
}
|
|
|
|
private void addToProcBatch(ArrayList oParameters) throws EnrgiseSystemException {
|
|
try {
|
|
Iterator oIter = oParameters.iterator();
|
|
while (oIter.hasNext()) {
|
|
DBObject oObject = oIter.next();
|
|
inspectParameter(oObject, this.oBatchCall);
|
|
}
|
|
this.oBatchCall.addBatch();
|
|
} catch (SQLException oSqlEx) {
|
|
oSqlEx.printStackTrace();
|
|
System.out.println(oSqlEx.getMessage());
|
|
try {
|
|
if (this.oBatchCon != null)
|
|
if (!this.oBatchCon.isClosed())
|
|
this.oBatchCon.close();
|
|
this.oBatchCon = null;
|
|
} catch (SQLException sQLException) {}
|
|
throw new EnrgiseSystemException(oSqlEx);
|
|
}
|
|
}
|
|
|
|
public void executeBatch() throws EnrgiseSystemException {
|
|
try {
|
|
if (!this.bDynamic) {
|
|
this.oBatchCall.executeBatch();
|
|
} else {
|
|
this.oDynamicBatchCall.executeBatch();
|
|
}
|
|
} catch (BatchUpdateException oBatchEx) {
|
|
System.out.println("Batch Update Failed");
|
|
System.out.println(String.valueOf(String.valueOf(String.valueOf(String.valueOf(String.valueOf(String.valueOf(String.valueOf(String.valueOf(String.valueOf("Casue ").concat(String.valueOf(oBatchEx.getCause()))).concat(String.valueOf(" Message "))).concat(String.valueOf(oBatchEx.getMessage()))).concat(String.valueOf(" SQL State "))).concat(String.valueOf(oBatchEx.getSQLState()))).concat(String.valueOf(" Update Count "))).concat(String.valueOf(oBatchEx.getUpdateCounts()))).concat(String.valueOf(" SQL Trace "))).concat(String.valueOf(oBatchEx.getStackTrace())));
|
|
throw new EnrgiseSystemException(oBatchEx);
|
|
} catch (SQLException oSqlEx) {
|
|
System.out.println(String.valueOf("dbutilities").concat(String.valueOf(oSqlEx.getMessage())));
|
|
oSqlEx.printStackTrace();
|
|
throw new EnrgiseSystemException(oSqlEx);
|
|
} finally {
|
|
try {
|
|
if (this.oBatchCon != null)
|
|
if (!this.oBatchCon.isClosed())
|
|
this.oBatchCon.close();
|
|
} catch (SQLException sQLException) {}
|
|
}
|
|
}
|
|
|
|
public int executeUpsert(ArrayList oParameters, String sQuery) throws EnrgiseSystemException {
|
|
int iCount = 0;
|
|
try {
|
|
this.oDataSource = (DataSource)ServiceLocator.getLocator().getLocalService(this.sDbName);
|
|
if (this.oPreUpsert != null)
|
|
this.oPreUpsert.close();
|
|
if (this.oPreUpsertCon != null) {
|
|
this.oPreUpsertCon.close();
|
|
this.oPreUpsertCon = null;
|
|
}
|
|
this.oPreUpsertCon = this.oDataSource.getConnection();
|
|
this.oPreUpsert = this.oPreUpsertCon.prepareStatement(sQuery);
|
|
Iterator oIter = oParameters.iterator();
|
|
while (oIter.hasNext()) {
|
|
InputDBObject oObject = oIter.next();
|
|
inspectExecuteParameter(oObject, this.oPreUpsert);
|
|
}
|
|
iCount = this.oPreUpsert.executeUpdate();
|
|
while (true);
|
|
} catch (Exception oExc) {
|
|
System.out.println(oExc.getMessage());
|
|
oExc.printStackTrace();
|
|
throw new EnrgiseSystemException(oExc);
|
|
} finally {
|
|
try {
|
|
if (this.oPreUpsertCon != null) {
|
|
if (!this.oPreUpsertCon.isClosed())
|
|
this.oPreUpsertCon.close();
|
|
this.oPreUpsertCon = null;
|
|
}
|
|
} catch (SQLException oSqlEx) {
|
|
System.out.println(oSqlEx.getMessage());
|
|
throw new EnrgiseSystemException(oSqlEx);
|
|
}
|
|
return iCount;
|
|
}
|
|
}
|
|
|
|
public ArrayList executeQuery(ArrayList oParameters, String sQuery) throws EnrgiseSystemException {
|
|
ResultSet oRs = null;
|
|
ArrayList oResult = null;
|
|
try {
|
|
this.oDataSource = (DataSource)ServiceLocator.getLocator().getLocalService(this.sDbName);
|
|
if (oRs != null) {
|
|
oRs.close();
|
|
oRs = null;
|
|
}
|
|
if (this.oPreParameter != null)
|
|
this.oPreParameter.close();
|
|
if (this.oPreParameterCon != null) {
|
|
this.oPreParameterCon.close();
|
|
this.oPreParameterCon = null;
|
|
}
|
|
this.oPreParameterCon = this.oDataSource.getConnection();
|
|
this.oPreParameter = this.oPreParameterCon.prepareStatement(sQuery);
|
|
Iterator oIter = oParameters.iterator();
|
|
while (oIter.hasNext()) {
|
|
InputDBObject oObject = oIter.next();
|
|
inspectExecuteParameter(oObject, this.oPreParameter);
|
|
}
|
|
oRs = this.oPreParameter.executeQuery();
|
|
if (oRs == null)
|
|
throw new EnrgiseSystemException();
|
|
oResult = convertToList(oRs);
|
|
while (true);
|
|
} catch (Exception oExc) {
|
|
System.out.println(oExc.getMessage());
|
|
oExc.printStackTrace();
|
|
throw new EnrgiseSystemException(oExc);
|
|
} finally {
|
|
try {
|
|
if (this.oPreParameterCon != null)
|
|
if (this.oPreParameterCon.isClosed())
|
|
this.oPreParameterCon.close();
|
|
} catch (SQLException oSqlEx) {
|
|
System.out.println(oSqlEx.getMessage());
|
|
throw new EnrgiseSystemException(oSqlEx);
|
|
}
|
|
return oResult;
|
|
}
|
|
}
|
|
|
|
public ArrayList callProc(ArrayList oParameters, String sProcName) throws EnrgiseSystemException {
|
|
CallableStatement oCall = null;
|
|
if (this.oOutParameters == null) {
|
|
this.oOutParameters = new ArrayList();
|
|
} else {
|
|
this.oOutParameters.clear();
|
|
}
|
|
try {
|
|
Object datasourceObj = null;
|
|
datasourceObj = ServiceLocator.getLocator().getLocalService(this.sDbName);
|
|
this.oDataSource = (DataSource)datasourceObj;
|
|
Object conObj = this.oDataSource.getConnection();
|
|
this.oCon = (Connection)conObj;
|
|
if (oCall != null)
|
|
oCall.close();
|
|
String sParam = String.valueOf(String.valueOf("{ call ").concat(String.valueOf(sProcName))).concat(String.valueOf("}"));
|
|
Object callObj = this.oCon.prepareCall(sParam);
|
|
oCall = (CallableStatement)callObj;
|
|
Iterator oIter = oParameters.iterator();
|
|
while (oIter.hasNext()) {
|
|
DBObject oObject = oIter.next();
|
|
inspectParameter(oObject, oCall);
|
|
}
|
|
oCall.execute();
|
|
Iterator oOutIter = this.oOutParameters.iterator();
|
|
while (oOutIter.hasNext())
|
|
getOutParameters(oOutIter.next(), oCall);
|
|
if (this.oOutParameters.size() >= 3) {
|
|
DBObject oErrLog = this.oOutParameters.get(this.oOutParameters.size() - 3);
|
|
String sErrorLog = (String)oErrLog.getObject();
|
|
DBObject oErrMessage = this.oOutParameters.get(this.oOutParameters.size() - 2);
|
|
String sErrorMessage = (String)oErrLog.getObject();
|
|
DBObject oErr = this.oOutParameters.get(this.oOutParameters.size() - 1);
|
|
Integer oErrorCode = (Integer)oErr.getObject();
|
|
if (null != oErrorCode && !oErrorCode.equals(new Integer(0))) {
|
|
System.out.println(String.valueOf("Error calling procedure ").concat(String.valueOf(sProcName)));
|
|
if (null != sErrorLog)
|
|
System.out.println(String.valueOf("Error Log ").concat(String.valueOf(sErrorLog)));
|
|
if (null != sErrorMessage)
|
|
System.out.println(String.valueOf("Error Message ").concat(String.valueOf(sErrorMessage)));
|
|
throw new EnrgiseSystemException();
|
|
}
|
|
}
|
|
return this.oOutParameters;
|
|
} catch (Exception oExc) {
|
|
System.out.println(oExc.getMessage());
|
|
oExc.printStackTrace();
|
|
throw new EnrgiseSystemException(oExc);
|
|
} finally {
|
|
try {
|
|
if (this.oCon != null) {
|
|
if (!this.oCon.isClosed())
|
|
this.oCon.close();
|
|
this.oCon = null;
|
|
}
|
|
} catch (Exception exception) {}
|
|
}
|
|
}
|
|
|
|
public ArrayList executeQuery(String sQuery) throws EnrgiseSystemException {
|
|
PreparedStatement oPre = null;
|
|
ArrayList oResult = null;
|
|
try {
|
|
this.oDataSource = (DataSource)ServiceLocator.getLocator().getLocalService(this.sDbName);
|
|
if (this.oRs != null) {
|
|
this.oRs.close();
|
|
this.oRs = null;
|
|
}
|
|
if (oPre != null)
|
|
oPre.close();
|
|
if (this.oConn != null) {
|
|
this.oConn.close();
|
|
this.oConn = null;
|
|
}
|
|
this.oConn = this.oDataSource.getConnection();
|
|
oPre = this.oConn.prepareStatement(sQuery);
|
|
this.oRs = oPre.executeQuery();
|
|
oResult = convertToList(this.oRs);
|
|
while (true);
|
|
} catch (SQLException oExc) {
|
|
System.out.println(String.valueOf(String.valueOf(String.valueOf("From DBUtility ").concat(String.valueOf(oExc.getClass().getName()))).concat(String.valueOf(" "))).concat(String.valueOf(oExc.getMessage())));
|
|
throw new EnrgiseSystemException(oExc);
|
|
} finally {
|
|
try {
|
|
if (this.oConn != null)
|
|
if (!this.oConn.isClosed())
|
|
this.oConn.close();
|
|
} catch (SQLException oSqEx) {
|
|
throw new EnrgiseSystemException(oSqEx);
|
|
}
|
|
return oResult;
|
|
}
|
|
}
|
|
|
|
public int executeUpsert(String sQuery) throws EnrgiseSystemException {
|
|
PreparedStatement oPre = null;
|
|
Connection oPreCon = null;
|
|
int iCount = 0;
|
|
try {
|
|
this.oDataSource = (DataSource)ServiceLocator.getLocator().getLocalService(this.sDbName);
|
|
if (oPre != null)
|
|
oPre.close();
|
|
oPreCon = this.oDataSource.getConnection();
|
|
oPre = oPreCon.prepareStatement(sQuery);
|
|
iCount = oPre.executeUpdate();
|
|
while (true);
|
|
} catch (SQLException oExc) {
|
|
System.out.println(String.valueOf(String.valueOf(String.valueOf("From DBUtility ").concat(String.valueOf(oExc.getClass().getName()))).concat(String.valueOf(" "))).concat(String.valueOf(oExc.getMessage())));
|
|
throw new EnrgiseSystemException(oExc);
|
|
} finally {
|
|
try {
|
|
if (oPreCon != null)
|
|
if (!oPreCon.isClosed())
|
|
oPreCon.close();
|
|
} catch (SQLException oSqEx) {
|
|
throw new EnrgiseSystemException(oSqEx);
|
|
}
|
|
return iCount;
|
|
}
|
|
}
|
|
|
|
private void inspectParameter(DBObject oDBObject, CallableStatement oCall) throws SQLException {
|
|
int iPosition = oDBObject.getPosition();
|
|
int iDirection = oDBObject.getDirection();
|
|
int iDataType = oDBObject.getDataType();
|
|
if (iDirection == 1 || iDirection == 3) {
|
|
Object oObject = oDBObject.getObject();
|
|
switch (iDataType) {
|
|
case 12:
|
|
if (oObject != null) {
|
|
oCall.setString(iPosition, oObject.toString());
|
|
break;
|
|
}
|
|
oCall.setString(iPosition, (String)null);
|
|
break;
|
|
case 4:
|
|
if (oObject != null) {
|
|
oCall.setInt(iPosition, Integer.parseInt(oObject.toString()));
|
|
break;
|
|
}
|
|
oCall.setInt(iPosition, 0);
|
|
break;
|
|
case 8:
|
|
if (oObject != null) {
|
|
oCall.setDouble(iPosition, Double.parseDouble(oObject.toString()));
|
|
break;
|
|
}
|
|
oCall.setDouble(iPosition, 0.0D);
|
|
break;
|
|
case -5:
|
|
if (oObject != null) {
|
|
oCall.setLong(iPosition, ((Long)oObject).longValue());
|
|
break;
|
|
}
|
|
oCall.setLong(iPosition, 0L);
|
|
break;
|
|
case 91:
|
|
if (oObject != null) {
|
|
oCall.setDate(iPosition, (Date)oObject);
|
|
break;
|
|
}
|
|
oCall.setDate(iPosition, (Date)null);
|
|
break;
|
|
case 93:
|
|
if (oObject != null) {
|
|
oCall.setTimestamp(iPosition, (Timestamp)oObject);
|
|
break;
|
|
}
|
|
oCall.setTimestamp(iPosition, (Timestamp)null);
|
|
break;
|
|
case 2000:
|
|
if (oObject != null) {
|
|
oCall.setObject(iPosition, oObject);
|
|
break;
|
|
}
|
|
oCall.setObject(iPosition, (Object)null);
|
|
break;
|
|
}
|
|
}
|
|
if (iDirection == 2 || iDirection == 3) {
|
|
oCall.registerOutParameter(iPosition, iDataType);
|
|
this.oOutParameters.add(new DBObject(iPosition, iDataType));
|
|
}
|
|
}
|
|
|
|
private void inspectExecuteParameter(InputDBObject oDBObject, PreparedStatement oCall) throws SQLException {
|
|
int iPosition = oDBObject.getPosition();
|
|
int iDataType = oDBObject.getDataType();
|
|
Object oObject = oDBObject.getObject();
|
|
switch (iDataType) {
|
|
case 12:
|
|
if (oObject != null) {
|
|
oCall.setString(iPosition, oObject.toString());
|
|
break;
|
|
}
|
|
oCall.setString(iPosition, (String)null);
|
|
break;
|
|
case 1:
|
|
if (oObject != null) {
|
|
oCall.setString(iPosition, oObject.toString());
|
|
break;
|
|
}
|
|
oCall.setString(iPosition, (String)null);
|
|
break;
|
|
case 4:
|
|
if (oObject != null) {
|
|
oCall.setInt(iPosition, Integer.parseInt(oObject.toString()));
|
|
break;
|
|
}
|
|
oCall.setInt(iPosition, 0);
|
|
break;
|
|
case 8:
|
|
if (oObject != null) {
|
|
oCall.setDouble(iPosition, Double.parseDouble(oObject.toString()));
|
|
break;
|
|
}
|
|
oCall.setDouble(iPosition, 0.0D);
|
|
break;
|
|
case -5:
|
|
if (oObject != null) {
|
|
oCall.setLong(iPosition, ((Long)oObject).longValue());
|
|
break;
|
|
}
|
|
oCall.setLong(iPosition, 0L);
|
|
break;
|
|
case 91:
|
|
if (oObject != null) {
|
|
oCall.setDate(iPosition, (Date)oObject);
|
|
break;
|
|
}
|
|
oCall.setDate(iPosition, (Date)null);
|
|
break;
|
|
case 93:
|
|
if (oObject != null) {
|
|
oCall.setTimestamp(iPosition, (Timestamp)oObject);
|
|
break;
|
|
}
|
|
oCall.setTimestamp(iPosition, (Timestamp)null);
|
|
break;
|
|
case 2000:
|
|
oCall.setObject(iPosition, oObject);
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void getOutParameters(DBObject oOutDBObject, CallableStatement oCall) throws SQLException {
|
|
int iPosition = oOutDBObject.getPosition();
|
|
int iDataType = oOutDBObject.getDataType();
|
|
switch (iDataType) {
|
|
case 12:
|
|
oOutDBObject.setObject(oCall.getString(iPosition));
|
|
break;
|
|
case 1:
|
|
oOutDBObject.setObject(oCall.getString(iPosition));
|
|
break;
|
|
case 4:
|
|
oOutDBObject.setObject(new Integer(oCall.getInt(iPosition)));
|
|
break;
|
|
case -5:
|
|
oOutDBObject.setObject(new Long(oCall.getLong(iPosition)));
|
|
break;
|
|
case 8:
|
|
oOutDBObject.setObject(new Double(oCall.getDouble(iPosition)));
|
|
break;
|
|
case 91:
|
|
oOutDBObject.setObject(oCall.getDate(iPosition));
|
|
break;
|
|
case 93:
|
|
oOutDBObject.setObject(oCall.getTimestamp(iPosition));
|
|
break;
|
|
case 2000:
|
|
oOutDBObject.setObject(oCall.getObject(iPosition));
|
|
break;
|
|
case -10:
|
|
oOutDBObject.setObject(convertToList((ResultSet)oCall.getObject(iPosition)));
|
|
break;
|
|
}
|
|
}
|
|
|
|
private ArrayList convertToList(ResultSet oRs2) throws SQLException {
|
|
if (null == oRs2)
|
|
return null;
|
|
ResultSetMetaData oRsMt = oRs2.getMetaData();
|
|
int iColumnCount = oRsMt.getColumnCount();
|
|
int iIndex = 0;
|
|
ArrayList oList = new ArrayList();
|
|
String[] sColumnName = new String[iColumnCount];
|
|
int[] iColumnType = new int[iColumnCount];
|
|
for (iIndex = 0; iIndex < iColumnCount; iIndex++) {
|
|
sColumnName[iIndex] = oRsMt.getColumnName(iIndex + 1);
|
|
iColumnType[iIndex] = oRsMt.getColumnType(iIndex + 1);
|
|
}
|
|
while (oRs2.next()) {
|
|
QueryRow oRow = new QueryRow(iColumnCount);
|
|
for (iIndex = 0; iIndex < iColumnCount; iIndex++) {
|
|
QueryValue oValue = new QueryValue();
|
|
setValue(sColumnName[iIndex], iColumnType[iIndex], oValue, oRs2);
|
|
oRow.getRow().put(sColumnName[iIndex].toUpperCase(), oValue);
|
|
}
|
|
oList.add(oRow);
|
|
}
|
|
oRs2.close();
|
|
oRs2 = null;
|
|
return oList;
|
|
}
|
|
|
|
private void setValue(String sColumnName, int iColumnType, QueryValue oValue, ResultSet oRs2) throws SQLException {
|
|
switch (iColumnType) {
|
|
case 2:
|
|
oValue.setString(oRs2.getString(sColumnName));
|
|
break;
|
|
case 12:
|
|
oValue.setString(oRs2.getString(sColumnName));
|
|
break;
|
|
case 1:
|
|
oValue.setString(oRs2.getString(sColumnName));
|
|
break;
|
|
case 4:
|
|
oValue.setInt(oRs2.getInt(sColumnName));
|
|
break;
|
|
case -5:
|
|
oValue.setLong(oRs2.getLong(sColumnName));
|
|
break;
|
|
case 8:
|
|
oValue.setDouble(oRs2.getDouble(sColumnName));
|
|
break;
|
|
case 91:
|
|
oValue.setDate(oRs2.getDate(sColumnName));
|
|
break;
|
|
case 93:
|
|
oValue.setTimestamp(oRs2.getTimestamp(sColumnName));
|
|
break;
|
|
case 2004:
|
|
oValue.setBlob(oRs2.getBlob(sColumnName));
|
|
break;
|
|
case 2005:
|
|
oValue.setClob(oRs2.getClob(sColumnName));
|
|
break;
|
|
}
|
|
}
|
|
|
|
protected void finalize() {
|
|
try {
|
|
close();
|
|
} catch (SQLException sQLException) {}
|
|
}
|
|
|
|
private void close() throws SQLException {
|
|
if (this.oCon != null) {
|
|
if (!this.oCon.isClosed())
|
|
this.oCon.close();
|
|
this.oCon = null;
|
|
}
|
|
if (this.oConn != null) {
|
|
if (!this.oConn.isClosed())
|
|
this.oConn.close();
|
|
this.oConn = null;
|
|
}
|
|
}
|
|
}
|