PHASE 4
Michaelhouse
231094020121
,15 October 2023
Table of Contents
Technical Document ................................................................................................................................ 2
External Code ...................................................................................................................................... 2
Critical Algorithms ............................................................................................................................... 3
Advanced Techniques.......................................................................................................................... 7
Testing Documentation ........................................................................................................................... 8
Problems and Solutions ...................................................................................................................... 8
Functional Testing ............................................................................................................................. 10
Test Plan and Results ......................................................................................................................... 11
Inputs for Adding a Student .......................................................................................................... 11
Adding Student Tests..................................................................................................................... 11
Inputs for Adding a Medication .................................................................................................... 13
Adding Medication Tests ............................................................................................................... 13
Conclusion ......................................................................................................................................... 15
Table of Figures
Table 1: DBManager Critical Algorithms ________________________________________________ 6
Table 2: frmMeds Critical Algorithms __________________________________________________ 7
Table 3: frmStudents Critical Algorithms _______________________________________________ 7
Table 4: Advanced Techniques _______________________________________________________ 8
Table 5: Shortfalls and Solutions _____________________________________________________ 10
Table 6: Functional Tests ___________________________________________________________ 11
Table 7: Add Student Inputs ________________________________________________________ 11
Table 8: Add Student Tests _________________________________________________________ 13
Table 9: Add Medication Inputs _____________________________________________________ 13
Table 10: Add Medication Tests _____________________________________________________ 14
Page | 1
, 15 October 2023
Technical Document
External Code
public List<Object[]> searchStudentsByFirstName(String firstName)
{
List<Object[]> results = new ArrayList<>();
String sql = "SELECT s.StudentID, s.FirstName, s.Surname, s.Grade, GROUP_CONCAT(m.DrugName) as Medications " +
"FROM tblstudents s " +
"LEFT JOIN tblscripts sc ON s.StudentID = sc.StudentID " +
"LEFT JOIN tblmeds m ON sc.MedID = m.MedID " +
"WHERE s.FirstName = ? " +
"GROUP BY s.StudentID";
try (PreparedStatement pstmt = conn.prepareStatement(sql))
{
pstmt.setString(1, firstName);
ResultSet rs = pstmt.executeQuery();
while (rs.next()){
Object[] row = new Object[4];
row[0] = rs.getString("FirstName");
row[1] = rs.getString("Surname");
row[2] = rs.getInt("Grade");
row[3] = rs.getString("Medications") == null ? "N/A" : rs.getString("Medications");
results.add(row);
}
}
catch (Exception sqle)
{
sqle.printStackTrace();
}
return results;
}
(ChatGPT, 2023)
Page | 2