Hope this helps.
Here is my class that extends the StoredProcedure class:
Code:
public class CallGetPolicyNumber extends StoredProcedure {
private static final Log log = LogFactory.getLog(CallGetPolicyNumber.class);
private static final String STORED_PROC_NAME = "dbproc_get_policy_number";
public CallGetPolicyNumber(DataSource ds) {
super(ds, STORED_PROC_NAME);
declareParameter(new SqlParameter("p_product_code", Types.VARCHAR));
declareParameter(new SqlOutParameter("p_policy_number", Types.VARCHAR));
declareParameter(new SqlParameter("p_link_type", Types.VARCHAR));
declareParameter(new SqlParameter("p_agent_code", Types.VARCHAR));
declareParameter(new SqlParameter("p_auth_number", Types.DECIMAL));
compile();
}
public String execute(String productCode, String policyNumber,
String linkType, String partnerCode, BigDecimal authorization) {
Map inParams = new HashMap(5);
inParams.put("p_product_code", productCode);
inParams.put("p_policy_number", policyNumber);
inParams.put("p_link_type", linkType);
inParams.put("p_agent_code", partnerCode);
inParams.put("p_auth_number", authorization);
Map outParams = execute(inParams);
if (outParams.size() > 0) {
return outParams.get("p_policy_number").toString();
} else {
return null;
}
}
}
Here is my DAO class:
Code:
public class HibPolicyDAO extends HibernateDaoSupport implements PolicyDAO {
private static final Log log = LogFactory.getLog(HibPolicyDAO.class);
private DataSource dataSource;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
public String getPolicyNumber(Policy policy)
throws UnableToRetrieveException {
CallGetPolicyNumber proc = new CallGetPolicyNumber(dataSource);
String policyNumber = proc.execute(policy.getProductCode(), policy
.getPolicyNumber(), null, policy.getPartner().getPartnerCode(),
policy.getAuthorization());
return policyNumber;
}
}
Here is my service class:
Code:
public class PolicyServiceImpl implements PolicyService {
private static final Log log = LogFactory.getLog(PolicyServiceImpl.class);
private PolicyDAO policyDAO;
public void setPolicyDAO(PolicyDAO policyDAO) {
this.policyDAO = policyDAO;
}
public Policy processPolicy(Policy policy) throws PolicyException {
// -------------------------------------------------
// Get policy Number
// -------------------------------------------------
String policyNumber = "";
try {
log.debug("Getting Policy Number");
policyNumber = policyDAO.getPolicyNumber(policy);
policy.setPolicyNumber(policyNumber);
} catch (UnableToRetrieveException e) {
log.error(e + " Policy [" + policy + "]");
throw new PolicyException("error.get.policy.number");
}
................ other business logic