public void placeHold() {
		// User inputs: bid, password
				JTextField bidField = new JTextField(15);
				JPasswordField passwordField = new JPasswordField(15);
				JTextField callNumberField = new JTextField(15);

				JComponent[] inputs = new JComponent[] { 
						new JLabel("Borrower ID:"), bidField,
						new JLabel("Password:"), passwordField,
						new JLabel("Call Number:"), callNumberField,

				};
				int result = JOptionPane.showConfirmDialog(null, inputs,
						"Enter information", JOptionPane.OK_CANCEL_OPTION,
						JOptionPane.WARNING_MESSAGE);

				if (result == JOptionPane.OK_OPTION) {
					int bid = Integer.parseInt(bidField.getText());
					char[] password = passwordField.getPassword();
					String callNumber = callNumberField.getText();

					try {
						PreparedStatement ps = Library.con
								.prepareStatement("select * from borrower where bid = ?");
						ps.setInt(1, bid);
						ps.executeQuery();

						ResultSet rs = ps.getResultSet();
						rs.next();

						char[] correctPassword = rs.getString("password").toCharArray();
						// Check if password is correct
						if (!Arrays.equals(password, correctPassword)) {
							new ErrorMessage("Incorrect password!");
						}

						else {

							// Check if there is a copy of the book currently in
							PreparedStatement ps2 = Library.con
									.prepareStatement("select callNumber from bookCopy where status like 'in' and callNumber=?");
							ps2.setString(1, callNumber);
							ps2.executeQuery();
							
							PreparedStatement ps4 = Library.con
									.prepareStatement("select callNumber from bookCopy where status like 'out' and callNumber=?");
							ps4.setString(1, callNumber);
							ps4.executeQuery();
							
							// If there is a copy of the book that is in or no copies that are out, error message
							if (ps2.getResultSet().next() != false){
								new ErrorMessage("You cannot place this book on hold because there are copies that are in");
							}
							
							else if(ps4.getResultSet().next() == false){
								 new ErrorMessage("There are no copies avaiable to be put on hold");
							}
							
							// If there are no copies of the book in, place a hold for the book
							else{
								
								java.util.Date currentDate = new java.util.Date();
								DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
								Date issuedDate = null;
								try {
									issuedDate = new Date(dateFormat.parse(
											dateFormat.format(currentDate)).getTime());
								} catch (ParseException e2) {
									// TODO Auto-generated catch block
									e2.printStackTrace();
								}
								
							PreparedStatement ps3 = Library.con
									.prepareStatement("insert into HoldRequest (bid, callNumber, issuedDate) VALUES (?,?,?)");
							ps3.setInt(1, bid);
							ps3.setString(2, callNumber);
							ps3.setDate(3, issuedDate);
							ps3.executeUpdate();
							Library.con.commit();

							// Show table
							Statement stmt = Library.con.createStatement();
							ResultSet rs2 = stmt.executeQuery("SELECT * FROM HoldRequest");
							LibraryGUI.showTable(rs2, "holdRequestButton");
							
							ps.close();
							ps2.close();
							ps3.close();
							rs.close();
							rs2.close();

							
							}
						}

					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
	}