Virginia Tech's My Courses Query for Banner

Virginia Tech's My Courses Query

Below you will find a screenshot of VT's My Courses channel along with some code we use to generate the query.  The query was developed for the portal team by a Banner developer on our Student Team so I don't exactly understand every aspect of the code.  I also have all the supporting files for the actual portlet if others are interested.

Ken McCrery



 

AccountSummaryDaoImpl.java
 package edu.vt.es.ips.portlet.dao;

import java.sql.Types;
import java.util.Date;
import java.util.Map;

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.SqlOutParameter;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;

import edu.vt.es.ips.portlet.model.AccountSummary;

public class AccountSummaryDaoImpl implements AccountSummaryDao {
private static final String GET_PIDM_QUERY = "SELECT gzbtpid_pidm FROM gzbtpid WHERE gzbtpid_end_date IS NULL AND gzbtpid_pid = ?";
private static final String CATALOG_NAME = "TZKMYVT";
private static final String PROCEDURE_NAME = "p_acct_summary";
public static final String PIDM = "PIDM";
public static final String LAST_STATEMENT_DUE_DATE = "LastStmtDueDate";
public static final String LAST_STATEMENT_DATE = "LastStmtDate";
public static final String LAST_STATEMENT_BALANCE = "LastStmtBalance";
public static final String CURRENT_BALANCE = "CurrentBalance";

private JdbcTemplate jdbcTemplate;
private SimpleJdbcCall simpleJdbcCall;

public JdbcTemplate getJdbcTemplate()
{ return jdbcTemplate; }
public void setJdbcTemplate(JdbcTemplate jdbcTemplate)
{ this.jdbcTemplate = jdbcTemplate; }
/\* (non-Javadoc)
* @see edu.vt.es.ips.portlet.dao.AccountSummaryDao#getAccountSummary(int)
\*/
@SuppressWarnings("unchecked")
public AccountSummary getAccountSummary(int pidm) {
SqlParameterSource parameterSource = new MapSqlParameterSource().addValue(PIDM, pidm);
AccountSummary accountSummary = new AccountSummary();
Map out = getSimpleJdbcCall().execute(parameterSource);

if (out.get(CURRENT_BALANCE) \!= null)
{ accountSummary.setCurrentBalance( (Double)out.get(CURRENT_BALANCE)); }
if (out.get(LAST_STATEMENT_BALANCE) \!= null)
{ accountSummary.setLastStatementBalance((Double)out.get(LAST_STATEMENT_BALANCE)); }
accountSummary.setLastStatementDate((Date)out.get(LAST_STATEMENT_DATE));
accountSummary.setLastStatementDueDate((Date)out.get(LAST_STATEMENT_DUE_DATE));
return accountSummary;
}
public int getPidm(String pid) {
return jdbcTemplate.queryForInt(GET_PIDM_QUERY,
new Object\[\]
{pid}
);
}
public void setSimpleJdbcCall(SimpleJdbcCall simpleJdbcCall)
{ this.simpleJdbcCall = simpleJdbcCall; }
private SimpleJdbcCall getSimpleJdbcCall() {
if ( this.simpleJdbcCall == null )
{ this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate) .withProcedureName(PROCEDURE_NAME) .withCatalogName(CATALOG_NAME) .withoutProcedureColumnMetaDataAccess() .useInParameterNames(PIDM) .declareParameters( new SqlParameter(PIDM, Types.NUMERIC), new SqlOutParameter(CURRENT_BALANCE, Types.DOUBLE), new SqlOutParameter(LAST_STATEMENT_DATE, Types.DATE), new SqlOutParameter(LAST_STATEMENT_DUE_DATE, Types.DATE), new SqlOutParameter(LAST_STATEMENT_BALANCE, Types.DOUBLE)); }
return this.simpleJdbcCall;
}

}