#10 story/pfleger-modul-sperren-und-loschen-von-pflegern #37

Merged
SZUT-Dorian merged 11 commits from story/pfleger-modul-sperren-und-loschen-von-pflegern into main 2024-05-16 11:57:12 +00:00
5 changed files with 61 additions and 7 deletions
Showing only changes of commit 9353c9990e - Show all commits

Binary file not shown.

View file

@ -46,6 +46,14 @@ public class NurseFixture implements Fixture<Nurse> {
"Armout",
"9876543210"
));
nurses.add(new Nurse(
"Björnd",
"Heideberger",
"69420",
true
));
NurseDao dao = DaoFactory.getInstance().createNurseDAO();
for (Nurse nurse : nurses) {
dao.create(nurse);

View file

@ -1,6 +1,7 @@
package de.hitec.nhplus.nurse;
import de.hitec.nhplus.main.Person;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
@ -14,6 +15,8 @@ import java.util.StringJoiner;
public class Nurse extends Person {
private SimpleIntegerProperty id;
private final SimpleStringProperty phoneNumber;
private final SimpleBooleanProperty locked;
/**
* This constructor allows instantiating a {@link Nurse} object,
@ -29,6 +32,17 @@ public class Nurse extends Person {
) {
super(firstName, surName);
this.phoneNumber = new SimpleStringProperty(phoneNumber);
this.locked = new SimpleBooleanProperty(false);
}
public Nurse(
String firstName,
String surName,
String phoneNumber,
Boolean isLocked
) {
super(firstName, surName);
this.phoneNumber = new SimpleStringProperty(phoneNumber);
this.locked = new SimpleBooleanProperty(isLocked);
}
SZUT-Dominik marked this conversation as resolved
Review
  • zu ungenau, mein Vorschlag:
    /**
     * This constructor allows instantiating a {@link Nurse} object,
     * before it is stored in the database, by omitting the {@link Nurse#id ID} value.
     *It includes the locked Property.
     * @implSpec This was added for usage in the {@link de.hitec.nhplus.fixtures.NurseFixture NurseFixture}.
     */
    
- [ ] zu ungenau, mein Vorschlag: ```java /** * This constructor allows instantiating a {@link Nurse} object, * before it is stored in the database, by omitting the {@link Nurse#id ID} value. *It includes the locked Property. * @implSpec This was added for usage in the {@link de.hitec.nhplus.fixtures.NurseFixture NurseFixture}. */ ```
/**
@ -38,11 +52,13 @@ public class Nurse extends Person {
int id,
String firstName,
String surName,
String phoneNumber
String phoneNumber,
Boolean isLocked
) {
super(firstName, surName);
this.id = new SimpleIntegerProperty(id);
this.phoneNumber = new SimpleStringProperty(phoneNumber);
this.locked = new SimpleBooleanProperty(isLocked);
}
public void setPhoneNumber(String phoneNumber) {
@ -65,6 +81,19 @@ public class Nurse extends Person {
return phoneNumber;
}
public boolean isLocked() {
return locked.get();
}
public SimpleBooleanProperty lockedProperty() {
return locked;
}
public void setLocked(boolean locked) {
this.locked.set(locked);
}
@Override
public String toString() {
return new StringJoiner(System.lineSeparator())

View file

@ -25,13 +25,14 @@ public class NurseDao extends DaoImp<Nurse> {
protected PreparedStatement getCreateStatement(Nurse nurse) throws SQLException {
final String SQL = """
INSERT INTO nurse
(firstName, surName, phoneNumber)
VALUES (?, ?, ?)
(firstName, surName, phoneNumber, isLocked)
VALUES (?, ?, ?, ?)
""";
PreparedStatement statement = this.connection.prepareStatement(SQL);
statement.setString(1, nurse.getFirstName());
statement.setString(2, nurse.getSurName());
statement.setString(3, nurse.getPhoneNumber());
statement.setBoolean(4, nurse.isLocked());
return statement;
}
@ -49,7 +50,8 @@ public class NurseDao extends DaoImp<Nurse> {
result.getInt(1),
result.getString(2),
result.getString(3),
result.getString(4)
result.getString(4),
result.getBoolean(5)
);
}
@ -68,20 +70,32 @@ public class NurseDao extends DaoImp<Nurse> {
return list;
}
public List<Nurse> readAllActive() throws SQLException {
final String SQL = "SELECT * FROM nurse WHERE isLocked=false";
return getListFromResultSet(this.connection.prepareStatement(SQL).executeQuery());
}
public List<Nurse> readAllLocked() throws SQLException {
final String SQL = "SELECT * FROM nurse WHERE isLocked=true";
return getListFromResultSet(this.connection.prepareStatement(SQL).executeQuery());
}
SZUT-Dominik marked this conversation as resolved
Review
  • Javadoc ist bereits im DaoImp<T> und wird vererbt, bitte hier weglassen
- [ ] Javadoc ist bereits im `DaoImp<T>` und wird vererbt, bitte hier weglassen
@Override
protected PreparedStatement getUpdateStatement(Nurse nurse) throws SQLException {
final String SQL = """
UPDATE nurse SET
firstName = ?,
surName = ?,
phoneNumber = ?
phoneNumber = ?,
isLocked = ?
WHERE id = ?
""";
PreparedStatement statement = this.connection.prepareStatement(SQL);
statement.setString(1, nurse.getFirstName());
statement.setString(2, nurse.getSurName());
statement.setString(3, nurse.getPhoneNumber());
statement.setInt(4, nurse.getId());
statement.setBoolean(4, nurse.isLocked());
statement.setInt(5, nurse.getId());
return statement;
}
@ -92,4 +106,6 @@ public class NurseDao extends DaoImp<Nurse> {
statement.setInt(1, id);
return statement;
}
}

View file

@ -3,5 +3,6 @@ CREATE TABLE nurse
id INTEGER PRIMARY KEY AUTOINCREMENT,
firstName TEXT NOT NULL,
surName TEXT NOT NULL,
phoneNumber TEXT NOT NULL
phoneNumber TEXT NOT NULL,
isLocked BOOLEAN NOT NULL DEFAULT false
)