Read Operation

To select records from the EMPLOYEE table, we need to define a select query in the SQL map and use it to retrieve the data.

<resultMap id="EMPLOYEE_SELECT_RESULT_MAP" class="java.util.HashMap">
<result property="EmployeeId" nullValue="" column="EMP_ID" javaType="java.lang.String" jdbcType="NUMBER"/>
<result property="EmployeeName" nullValue="" column="EMP_NAME" javaType="java.lang.String" jdbcType="VARCHAR"/>
<result property="dtBirthDate" nullValue="" column="DOB" javaType="java.util.Date" jdbcType="DATE"/>
<result property="mobileNum" nullValue="" column="MOB_NO" javaType="java.lang.String" jdbcType="VARCHAR"/>
</resultMap> 
<select id="EMPLOYEE_SELECT_MYAPP" parameterClass ="java.util.HashMap" resultMap="FORMATTER_PRPT_MAP">
SELECT EMP_ID,EMP_NAME, DOB, MOB_NO
FROM EMPLOYEE
</select>


The code to retrieve the data can be something like -

List<HashMap> allEmployees = null;
try { 
DatabaseRequest dbRequest = new DatabaseRequest(); 
dbRequest.setDataAccessMapKey("EMPLOYEE");
dbRequest.setOperation(DatabaseConstants.SELECT)
dbRequest.setOperationExtension("MYAPP"); 
DatabaseResult dbResult = dbRequest.execute(); //Execute the select.
allEmployees = (List<HashMap>)dbResult.getReturnedList(); //Get the actual result set
} catch (DatabaseException dbException) {
//Handle the exception appropriately.
}


This code segment is a simple example to retrieve data. Let us consider a requirement wherea list of employee IDs needs to be filtered. For this requirement, a small tweak to the SQL map and the following code effectively –delivers the results:

<select id="EMPLOYEE_SELECT_MYAPP" parameterClass ="java.util.HashMap" resultMap="FORMATTER_PRPT_MAP">
SELECT EMP_ID,EMP_NAME, DOB, MOB_NO
FROM EMPLOYEE
WHERE EMP_ID in 
<iterate property="EmployeeList" open="(" close=")" conjunction=",">
#EmployeeList[]#
</iterate>
</select>


The property EmployeeList can be a List<String> or a String array. Assuming that it is a String array, the following small changes to the code snippet –are needed:

List<HashMap> allEmployees = null;
String[] empIdsArr = getEmpIdsFilterList();
try { 
DatabaseRequest dbRequest = new DatabaseRequest(); 
dbRequest.setDataAccessMapKey("EMPLOYEE");
dbRequest.setOperation(DatabaseConstants.SELECT)
dbRequest.setOperationExtension("MYAPP");
dbRequest.addFilter("EmployeeList", empIdsArr); //Add the array as a filter 
DatabaseResult dbResult = dbRequest.execute(); //Execute the select.
allEmployees = (List<HashMap>)dbResult.getReturnedList(); //Get the actual result set
} catch (DatabaseException dbException) {
//Handle the exception appropriately.
}