Class GetExamQuestions
java.lang.Object
org.deltava.dao.DAO
org.deltava.dao.GetExamQuestions
A Data Access Object to retrieve Examination questions.
- Since:
- 2.1
- Version:
- 10.6
- Author:
- Luke
-
Field Summary
Fields inherited from class DAO
_queryMax, _queryStart, _queryTimeout, WGS84_SRIDModifier and TypeFieldDescriptionprotected intThe maximum number of rows to return.protected intThe row number at which to start returning results.protected intThe query timeout, in seconds.protected static final intThe SRID used for geolocation queries. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetDiscreteStatistics(int id, boolean isAcademy) Returns discrete pass / fail statistics for a particular Question.getMostPopular(boolean isAcademy) Retrieves the most commonly asked active examination Questions.getQuestionPool(ExamProfile exam, boolean isRandom) Loads all active Questions linked to a particular Pilot Examination.getQuestionPool(ExamProfile exam, boolean isRandom, int pilotID) Loads all active Questions linked to a particular Pilot Examination.getQuestionProfile(int id) Loads a Question Profile.getQuestions(ExamProfile exam) Loads Questions for a particular Examination, or all Examinations.getResults(boolean isDesc, boolean isAcademy, int minExams) Returns active examination Questions based on the frequency of being answered correctly.Searches Examination questions for a particular phrase or substring.Methods inherited from class DAO
commitTransaction, createTimestamp, executeIDs, executeUpdate, executeUpdate, expandDate, formatDBName, formatLocation, getNewID, getQueryCount, prepare, prepareWithoutLimits, rollbackTransaction, setQueryMax, setQueryStart, setQueryTimeout, startTransaction, toID, toID, toInstantModifier and TypeMethodDescriptionprotected voidCommits a multi-step transaction to the database.protected static TimestampNull-safe conversion of an Instant to a Timestamp.Helper method to extract database ID data from the result set.protected static intexecuteUpdate(PreparedStatement ps, int minUpdateCount) Executes an UPDATE transaction on a prepared statement, and throws aSQLExceptionif less than the expected number of rows were updated.protected static intexecuteUpdate(PreparedStatement ps, int minPerUpdate, int minTotal) Executes an batched UPDATE transaction on a prepared statement, and throws aSQLExceptionif less than the expected number of rows were updated per batch entry.protected static InstantexpandDate(Date dt) Converts a date-only JDBC value into a full timestamp.protected static StringformatDBName(String db) Formats a database name by converting to lowercase.protected static StringConverts a geographic location into a MySQL WKT formatted point.protected intgetNewID()Returns the AUTO_INC column value generated by the previous JDBC transaction.static final longReturns the total number of queries executed since the JVM was started.protected PreparedStatementInitialize the prepared statement with an arbitrary SQL statement.protected PreparedStatementInitialize the prepared statement with an abitrary SQL statement, without applying the DAO's query result limitations.protected voidRolls back a multi-step transaction before it is completed.final voidsetQueryMax(int maxRows) Sets the maximum number of rows in the returned result set.final voidsetQueryStart(int rowStart) Sets the first row of the results to return.voidsetQueryTimeout(int timeout) Sets the timeout for any SQL operations.protected voidMarks the start of a multi-step database transaction.protected static IntegerConverts a Database bean or an Integer into an Integer.protected static Collection<Integer> toID(Collection<?> ids) Converts a collection of Objects into Integer IDs.protected static InstantNull-safe conversion of a Timestamp to an Instant.
-
Constructor Details
-
GetExamQuestions
Initialize the Data Access Object.- Parameters:
c- the JDBC connection to use
-
-
Method Details
-
getQuestionProfile
Loads a Question Profile.- Parameters:
id- the Question ID- Returns:
- the Question profile
- Throws:
DAOException- if a JDBC error occurs
-
getDiscreteStatistics
Returns discrete pass / fail statistics for a particular Question.- Parameters:
id- the database IDisAcademy- TRUE if Flight Academy only, otherwise FALSE- Returns:
- a PassStatistics bean
- Throws:
DAOException- if a JDBC error occurs
-
search
Searches Examination questions for a particular phrase or substring.- Parameters:
searchStr- the substring- Returns:
- a List of QuestionpProfile beans
- Throws:
DAOException- if a JDBC error occurs
-
getQuestions
Loads Questions for a particular Examination, or all Examinations.- Parameters:
exam- the ExaminationProfile or null if all- Returns:
- a List of QuestionProfile beans
- Throws:
DAOException- if a JDBC error occurs
-
getMostPopular
Retrieves the most commonly asked active examination Questions.- Parameters:
isAcademy- TRUE if Academy examinations only, otherwise FALSE- Returns:
- a List of QuestionProfile beans
- Throws:
DAOException- if a JDBC error occurs
-
getResults
public List<QuestionProfile> getResults(boolean isDesc, boolean isAcademy, int minExams) throws DAOException Returns active examination Questions based on the frequency of being answered correctly.- Parameters:
isDesc- TRUE if in descening order of correct answers, otherwise FALSEisAcademy- TRUE if Academy examinations only, otherwise FALSEminExams- the minimum number of exams the Question must have been in- Returns:
- a List of QuestionProfile beans
- Throws:
DAOException- if a JDBC error occurs
-
getQuestionPool
public List<QuestionProfile> getQuestionPool(ExamProfile exam, boolean isRandom) throws DAOException Loads all active Questions linked to a particular Pilot Examination.- Parameters:
exam- the ExamProfile beanisRandom- randomly order Questions- Returns:
- a List of QuestionProfiles
- Throws:
DAOException- if a JDBC error occursNullPointerException- if exam is null
-
getQuestionPool
public List<QuestionProfile> getQuestionPool(ExamProfile exam, boolean isRandom, int pilotID) throws DAOException Loads all active Questions linked to a particular Pilot Examination. If a Pilot ID is specified, questions will be selected in increasing order of frequency of visibility in prior examination written by this Pilot.- Parameters:
exam- the ExamProfile beanisRandom- randomly order QuestionspilotID- the user's database ID, or zero if none- Returns:
- a List of QuestionProfiles
- Throws:
DAOException- if a JDBC error occursNullPointerException- if exam is null
-