/** * find person using name (firstname + lastName) using Phonebook database perhaps use phonebook * list? */ @Override public Person findPersonFromDb(String firstName, String lastName) { Person newPerson = new Person(); try (Connection cn = DatabaseUtil.getConnection()) { String queryString = "SELECT NAME, PHONENUMBER, ADDRESS FROM PHONEBOOK WHERE NAME = ?"; PreparedStatement stmt = cn.prepareStatement(queryString); stmt.setString(1, firstName + " " + lastName); ResultSet rs = stmt.executeQuery(); if (rs.next()) { newPerson.setName(rs.getString("NAME")); newPerson.setPhoneNumber(rs.getString("PHONENUMBER")); newPerson.setAddress(rs.getString("ADDRESS")); } else newPerson = null; } catch (ClassNotFoundException e) { // TODO Auto-generated catch block System.out.println("findPerson failed"); e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("findPerson failed"); e.printStackTrace(); } return newPerson; }
/** Updates name and/or phone number of person found by index. */ private void updateRegister() { if (register.getCount() < 1) { System.err.println("Register does not contain any persons"); return; } System.out.println("Enter index: "); int index = readIndex(); if (index == 0) { return; } Person person = register.getPerson(index - 1); System.out.println(person.toString()); System.out.println( "What do you want to update?\n1. Name \n2. Phone Number\n3. Name and PhoneNumber\n9. Back"); try { index = Integer.parseInt(readLine()); } catch (NumberFormatException e) { // if input is not number, return to // menu System.err.println("Wrong format"); } String name; String phoneNumber; switch (index) { case 1: System.out.println("Enter new name: "); name = readLine(); if (register.findPersonByBoth(name, person.getPhoneNumber()) != null) { System.err.println("Person with this NAME and NUMBER is already registered!"); return; } person.setName(name); break; case 2: System.out.println("Enter new phoneNumber: "); phoneNumber = readLine(); if (register.findPersonByBoth(person.getName(), phoneNumber) != null) { System.err.println("Person with this NAME and NUMBER is already registered!"); return; } try { person.setPhoneNumber(phoneNumber); } catch (RuntimeException e) { System.err.println("Wrong number format"); } break; case 3: System.out.println("Enter new name: "); name = readLine(); System.out.println("Enter new phoneNumber: "); phoneNumber = readLine(); if (register.findPersonByBoth(name, phoneNumber) != null) { System.err.println("Person with this NAME and NUMBER is already registered!"); return; } person.setName(name); try { person.setPhoneNumber(phoneNumber); } catch (RuntimeException e) { System.err.println("Wrong number format"); } break; case 9: return; default: System.err.println("Wrong index, choose only 1,2,3 or 9"); break; } register.updateList(); }
public static PersonContainer createWithTestData() { final String[] fnames = { "Peter", "Alice", "Joshua", "Mike", "Olivia", "Nina", "Alex", "Rita", "Dan", "Umberto", "Henrik", "Rene", "Lisa", "Marge" }; final String[] lnames = { "Smith", "Gordon", "Simpson", "Brown", "Clavel", "Simons", "Verne", "Scott", "Allison", "Gates", "Rowling", "Barks", "Ross", "Schneider", "Tate" }; final String cities[] = { "Amsterdam", "Berlin", "Helsinki", "Hong Kong", "London", "Luxemburg", "New York", "Oslo", "Paris", "Rome", "Stockholm", "Tokyo", "Turku" }; final String streets[] = { "4215 Blandit Av.", "452-8121 Sem Ave", "279-4475 Tellus Road", "4062 Libero. Av.", "7081 Pede. Ave", "6800 Aliquet St.", "P.O. Box 298, 9401 Mauris St.", "161-7279 Augue Ave", "P.O. Box 496, 1390 Sagittis. Rd.", "448-8295 Mi Avenue", "6419 Non Av.", "659-2538 Elementum Street", "2205 Quis St.", "252-5213 Tincidunt St.", "P.O. Box 175, 4049 Adipiscing Rd.", "3217 Nam Ave", "P.O. Box 859, 7661 Auctor St.", "2873 Nonummy Av.", "7342 Mi, Avenue", "539-3914 Dignissim. Rd.", "539-3675 Magna Avenue", "Ap #357-5640 Pharetra Avenue", "416-2983 Posuere Rd.", "141-1287 Adipiscing Avenue", "Ap #781-3145 Gravida St.", "6897 Suscipit Rd.", "8336 Purus Avenue", "2603 Bibendum. Av.", "2870 Vestibulum St.", "Ap #722 Aenean Avenue", "446-968 Augue Ave", "1141 Ultricies Street", "Ap #992-5769 Nunc Street", "6690 Porttitor Avenue", "Ap #105-1700 Risus Street", "P.O. Box 532, 3225 Lacus. Avenue", "736 Metus Street", "414-1417 Fringilla Street", "Ap #183-928 Scelerisque Road", "561-9262 Iaculis Avenue" }; PersonContainer c = null; Random r = new Random(0); try { c = new PersonContainer(); for (int i = 0; i < 100; i++) { Person p = new Person(); p.setFirstName(fnames[r.nextInt(fnames.length)]); p.setLastName(lnames[r.nextInt(lnames.length)]); p.setCity(cities[r.nextInt(cities.length)]); p.setEmail( p.getFirstName().toLowerCase() + "." + p.getLastName().toLowerCase() + "@vaadin.com"); p.setPhoneNumber( "+358 02 555 " + r.nextInt(10) + r.nextInt(10) + r.nextInt(10) + r.nextInt(10)); int n = r.nextInt(100000); if (n < 10000) { n += 10000; } p.setPostalCode(n); p.setStreetAddress(streets[r.nextInt(streets.length)]); c.addItem(p); } } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } return c; }