import java.sql.Connection;
import java.sql.DriverManager;
import com.ibm.db.DatabaseConnection;
import com.ibm.db.SQLStatement;
import com.ibm.db.SelectResult;
import com.ibm.db.SelectStatement;
import com.ibm.db.StatementMetaData;
/******************************************************************************
*
* AUTHOR: Luken, Michael
*
*
* EXAMPLE OF HOW TO IMPLEMENT TO RETRIEVE A SELECT RESULT OBJECT:
*
* SelectResult result = null;
* LMPPersistenceImpl impl = new LMPPersistenceImpl();
* try {
* impl.setDatasource("MY_DATASOURCE");
* impl.setSQL("SELECT * FROM MY_TABLE");
* result = impl.query();
* } catch (Exception e) {
* System.out.println(e.toString());
* } finally {
* impl.closeConnections();
* }
*
*
*
* EXAMPLE OF HOW TO PERFORM AN UPDATE, INSERT, OR DELETE:
*
* LMPPersistenceImpl impl = new LMPPersistenceImpl();
* try {
* impl.setDatasource("MY_DATASOURCE");
* impl.setSQL("DELETE FROM MY_TABLE WHERE ID = 5");
* impl.execute();
* } catch (Exception e) {
* System.out.println(e.toString());
* } finally {
* impl.closeConnections();
* }
*
******************************************************************************/
public class LMPPersistenceImpl {
private String datasourceName = "";
private String sQL = "";
private Connection connection = null;
private DatabaseConnection ibmConnection = null;
private SelectStatement selectStatement = null;
private SQLStatement sqlStatement = null;
public LMPPersistenceImpl() {
super();
setDatasource("");
setSQL("");
}
public void closeConnections() {
try {
if (ibmConnection != null && ibmConnection.isConnected())
ibmConnection.disconnect();
if (connection != null && !connection.isClosed())
connection.close();
} catch (Exception e) {
System.out.println(e.toString());
}
}
public void execute() throws Exception {
nullifyConnections();
sqlStatement = new SQLStatement();
connection = DriverManager.getConnection("jdbc:odbc:"+getDatasource());
ibmConnection = new DatabaseConnection(connection);
sqlStatement.setConnection(ibmConnection);
sqlStatement.setMetaData(new StatementMetaData());
sqlStatement.getMetaData().setSQL(getSQL());
sqlStatement.execute();
}
private String getDatasource() {
return datasourceName;
}
private String getSQL() {
return sQL;
}
private void nullifyConnections() throws Exception {
closeConnections();
connection = null;
ibmConnection = null;
selectStatement = null;
sqlStatement = null;
}
public SelectResult query() throws Exception {
nullifyConnections();
SelectResult selectResult = null;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
selectStatement = new SelectStatement();
connection = DriverManager.getConnection("jdbc:odbc:"+getDatasource());
ibmConnection = new DatabaseConnection(connection);
selectStatement.setConnection(ibmConnection);
selectStatement.setMetaData(new StatementMetaData());
selectStatement.getMetaData().setSQL( getSQL() );
selectStatement.execute();
selectResult = selectStatement.getResult();
return selectResult;
}
public void setDatasource(String aName) {
datasourceName = aName;
}
public void setSQL(String aValue) {
sQL = aValue;
}
}