#10: Modify Model, Dao and Fixtures

This commit is contained in:
arminribic 2024-05-14 14:19:43 +02:00
parent 40a9a793cd
commit f212cfe760
5 changed files with 61 additions and 7 deletions

Binary file not shown.

View file

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

View file

@ -1,6 +1,7 @@
package de.hitec.nhplus.nurse; package de.hitec.nhplus.nurse;
import de.hitec.nhplus.main.Person; import de.hitec.nhplus.main.Person;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleIntegerProperty; import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty; import javafx.beans.property.SimpleStringProperty;
@ -9,6 +10,8 @@ import java.util.StringJoiner;
public class Nurse extends Person { public class Nurse extends Person {
private SimpleIntegerProperty id; private SimpleIntegerProperty id;
private final SimpleStringProperty phoneNumber; private final SimpleStringProperty phoneNumber;
private final SimpleBooleanProperty locked;
public Nurse( public Nurse(
String firstName, String firstName,
@ -17,17 +20,30 @@ public class Nurse extends Person {
) { ) {
super(firstName, surName); super(firstName, surName);
this.phoneNumber = new SimpleStringProperty(phoneNumber); 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);
} }
public Nurse( public Nurse(
int id, int id,
String firstName, String firstName,
String surName, String surName,
String phoneNumber String phoneNumber,
Boolean isLocked
) { ) {
super(firstName, surName); super(firstName, surName);
this.id = new SimpleIntegerProperty(id); this.id = new SimpleIntegerProperty(id);
this.phoneNumber = new SimpleStringProperty(phoneNumber); this.phoneNumber = new SimpleStringProperty(phoneNumber);
this.locked = new SimpleBooleanProperty(isLocked);
} }
public void setPhoneNumber(String phoneNumber) { public void setPhoneNumber(String phoneNumber) {
@ -50,6 +66,19 @@ public class Nurse extends Person {
return phoneNumber; return phoneNumber;
} }
public boolean isLocked() {
return locked.get();
}
public SimpleBooleanProperty lockedProperty() {
return locked;
}
public void setLocked(boolean locked) {
this.locked.set(locked);
}
@Override @Override
public String toString() { public String toString() {
return new StringJoiner(System.lineSeparator()) return new StringJoiner(System.lineSeparator())

View file

@ -19,13 +19,14 @@ public class NurseDao extends DaoImp<Nurse> {
protected PreparedStatement getCreateStatement(Nurse nurse) throws SQLException { protected PreparedStatement getCreateStatement(Nurse nurse) throws SQLException {
final String SQL = """ final String SQL = """
INSERT INTO nurse INSERT INTO nurse
(firstName, surName, phoneNumber) (firstName, surName, phoneNumber, isLocked)
VALUES (?, ?, ?) VALUES (?, ?, ?, ?)
"""; """;
PreparedStatement statement = this.connection.prepareStatement(SQL); PreparedStatement statement = this.connection.prepareStatement(SQL);
statement.setString(1, nurse.getFirstName()); statement.setString(1, nurse.getFirstName());
statement.setString(2, nurse.getSurName()); statement.setString(2, nurse.getSurName());
statement.setString(3, nurse.getPhoneNumber()); statement.setString(3, nurse.getPhoneNumber());
statement.setBoolean(4, nurse.isLocked());
return statement; return statement;
} }
@ -43,7 +44,8 @@ public class NurseDao extends DaoImp<Nurse> {
result.getInt(1), result.getInt(1),
result.getString(2), result.getString(2),
result.getString(3), result.getString(3),
result.getString(4) result.getString(4),
result.getBoolean(5)
); );
} }
@ -62,20 +64,32 @@ public class NurseDao extends DaoImp<Nurse> {
return list; 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());
}
@Override @Override
protected PreparedStatement getUpdateStatement(Nurse nurse) throws SQLException { protected PreparedStatement getUpdateStatement(Nurse nurse) throws SQLException {
final String SQL = """ final String SQL = """
UPDATE nurse SET UPDATE nurse SET
firstName = ?, firstName = ?,
surName = ?, surName = ?,
phoneNumber = ? phoneNumber = ?,
isLocked = ?
WHERE id = ? WHERE id = ?
"""; """;
PreparedStatement statement = this.connection.prepareStatement(SQL); PreparedStatement statement = this.connection.prepareStatement(SQL);
statement.setString(1, nurse.getFirstName()); statement.setString(1, nurse.getFirstName());
statement.setString(2, nurse.getSurName()); statement.setString(2, nurse.getSurName());
statement.setString(3, nurse.getPhoneNumber()); statement.setString(3, nurse.getPhoneNumber());
statement.setInt(4, nurse.getId()); statement.setBoolean(4, nurse.isLocked());
statement.setInt(5, nurse.getId());
return statement; return statement;
} }
@ -86,4 +100,6 @@ public class NurseDao extends DaoImp<Nurse> {
statement.setInt(1, id); statement.setInt(1, id);
return statement; return statement;
} }
} }

View file

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