public static User getUserRowWithUserNo(String userNo) {
        Connection conn = ConnectionManager.getInstance().getConnection();
        
        String sql = "{call selectUserRowWithUserNo(?)}";
        ResultSet rs = null;

        try (PreparedStatement stmt = conn.prepareStatement(sql);) {
            stmt.setString(1, userNo);
            rs = stmt.executeQuery();
            
            if (rs.next()) {
                User userEntity = new User();
                userEntity.setUserNo(rs.getString("userNo"));
                userEntity.setEmail(rs.getString("email"));
                userEntity.setUserType(rs.getString("userType"));
                userEntity.setFirstName(rs.getString("firstName"));
                userEntity.setLastName(rs.getString("lastName"));
                userEntity.setPassword(rs.getString("password"));
                userEntity.setDateAdded(rs.getDate("dateAdded"));
    
                return userEntity;
            }
            
            return null;
            
        } catch (SQLTransientConnectionException SQLtce) {
            return getUserRowWithUserNo(userNo);
        } catch (SQLTransientException SQLte) {
            return getUserRowWithUserNo(userNo);
        } catch (SQLException e) {
            System.err.println(e);
            return null;
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                conn.close();
            } catch (SQLException e) {
                System.err.println(e);
            }
        }
    }