public boolean issueBook(IssueBookVO issueBookVO)
			throws LibraryManagementException {
		ConnectionFactory connectionFactory = new ConnectionFactory();
		Connection connection;
		try {
			connection = connectionFactory.getConnection();
		} catch (LibraryManagementException e) {
			throw e;
		}

		PreparedStatement preparedStatement = null;
		int checkInsertData = 0;
		try {
			if (issueBookVO != null) {
				preparedStatement = connection
						.prepareStatement("insert into ISSUE_BOOK"
								+ " (ID, STUDENT_ID, BOOK_ID, ISSUE_DATE)"
								+ " values(default, ?, ?, ?)");
				preparedStatement.setString(1, issueBookVO.getStudentID());
				preparedStatement.setString(2, issueBookVO.getBookID());
				preparedStatement.setDate(3, new Date(issueBookVO
						.getIssueDate().getTime()));
				checkInsertData = preparedStatement.executeUpdate();
			}
		} catch (SQLException e) {
			throw new LibraryManagementException(ExceptionCategory.SYSTEM);
		} finally {
			if (preparedStatement != null) {
				try {
					preparedStatement.close();
				} catch (SQLException e) {
					throw new LibraryManagementException(
							ExceptionCategory.SYSTEM);
				}
			}
			connectionFactory.closeConnection(connection);
		}

		if (checkInsertData == 0) {
			return false; // no insertion
		} else {
			return true;
		}
	}