Compare commits

...

1 commit

Author SHA1 Message Date
c303e45af3
#16: Setup Nurse Model, DAO & Fixtures
All checks were successful
Quality Check / Qualty Check (push) Successful in 8s
Signed-off-by: Dominik Säume <Dominik.Saeume@hmmh.de>
2024-04-27 21:11:08 +02:00
4 changed files with 233 additions and 0 deletions

View file

@ -21,4 +21,8 @@ public class DaoFactory {
public PatientDao createPatientDAO() { public PatientDao createPatientDAO() {
return new PatientDao(ConnectionBuilder.getConnection()); return new PatientDao(ConnectionBuilder.getConnection());
} }
public NurseDao createNurseDAO() {
return new NurseDao(ConnectionBuilder.getConnection());
}
} }

View file

@ -0,0 +1,115 @@
package de.hitec.nhplus.datastorage;
import de.hitec.nhplus.model.Nurse;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
public class NurseDao extends DaoImp<Nurse> {
public NurseDao(Connection connection) {
super(connection);
}
@Override
protected PreparedStatement getCreateStatement(Nurse nurse) {
PreparedStatement preparedStatement = null;
try {
final String SQL = "INSERT INTO patient (firstname, surname, phoneNumber)" +
"VALUES (?, ?, ?)";
preparedStatement = this.connection.prepareStatement(SQL);
preparedStatement.setString(1, nurse.getFirstName());
preparedStatement.setString(2, nurse.getSurname());
preparedStatement.setString(3, nurse.getPhoneNumber());
} catch (SQLException exception) {
exception.printStackTrace();
}
return preparedStatement;
}
@Override
protected PreparedStatement getReadByIDStatement(long nid) {
PreparedStatement preparedStatement = null;
try {
final String SQL = "SELECT * FROM nurse WHERE nid = ?";
preparedStatement = this.connection.prepareStatement(SQL);
preparedStatement.setLong(1, nid);
} catch (SQLException exception) {
exception.printStackTrace();
}
return preparedStatement;
}
@Override
protected Nurse getInstanceFromResultSet(ResultSet result) throws SQLException {
return new Nurse(
result.getLong(1),
result.getString(2),
result.getString(3),
result.getString(4)
);
}
@Override
protected PreparedStatement getReadAllStatement() {
PreparedStatement statement = null;
try {
final String SQL = "SELECT * FROM nurse";
statement = this.connection.prepareStatement(SQL);
} catch (SQLException exception) {
exception.printStackTrace();
}
return statement;
}
@Override
protected ArrayList<Nurse> getListFromResultSet(ResultSet result) throws SQLException {
ArrayList<Nurse> list = new ArrayList<>();
while (result.next()) {
list.add(new Nurse(
result.getLong(1),
result.getString(2),
result.getString(3),
result.getString(4)
));
}
return list;
}
@Override
protected PreparedStatement getUpdateStatement(Nurse nurse) {
PreparedStatement preparedStatement = null;
try {
final String SQL =
"UPDATE nurse SET " +
"firstname = ?, " +
"surname = ?, " +
"phoneNumber = ?, " +
"WHERE nid = ?";
preparedStatement = this.connection.prepareStatement(SQL);
preparedStatement.setString(1, nurse.getFirstName());
preparedStatement.setString(2, nurse.getSurname());
preparedStatement.setString(3, nurse.getPhoneNumber());
preparedStatement.setLong(4, nurse.getNid());
} catch (SQLException exception) {
exception.printStackTrace();
}
return preparedStatement;
}
@Override
protected PreparedStatement getDeleteStatement(long nid) {
PreparedStatement preparedStatement = null;
try {
final String SQL = "DELETE FROM nurse WHERE nid = ?";
preparedStatement = this.connection.prepareStatement(SQL);
preparedStatement.setLong(1, nid);
} catch (SQLException exception) {
exception.printStackTrace();
}
return preparedStatement;
}
}

View file

@ -0,0 +1,65 @@
package de.hitec.nhplus.fixtures;
import de.hitec.nhplus.datastorage.DaoFactory;
import de.hitec.nhplus.datastorage.NurseDao;
import de.hitec.nhplus.model.Nurse;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class NurseFixture implements Fixture<Nurse> {
@Override
public void dropTable(Connection connection) {
try (Statement statement = connection.createStatement()) {
statement.execute("DROP TABLE nurse");
} catch (SQLException exception) {
System.out.println(exception.getMessage());
}
}
@Override
public void setupTable(Connection connection) {
final String SQL = "CREATE TABLE IF NOT EXISTS nurse (" +
"nid BIGINT PRIMARY KEY AUTOINCREMENT, " +
"firstname TEXT NOT NULL, " +
"surname TEXT NOT NULL, " +
"phoneNumber TEXT NOT NULL" +
");";
try (Statement statement = connection.createStatement()) {
statement.execute(SQL);
} catch (SQLException exception) {
System.out.println(exception.getMessage());
}
}
@Override
public Map<String, Nurse> load() throws SQLException {
List<Nurse> nurses = new ArrayList<>();
nurses.add(new Nurse(
"Ole",
"Kück",
"0123456789"
));
nurses.add(new Nurse(
"Armin",
"Armout",
"9876543210"
));
NurseDao dao = DaoFactory.getDaoFactory().createNurseDAO();
for(Nurse nurse : nurses){
dao.create(nurse);
}
Map<String, Nurse> nursesByName = new HashMap<>();
for (Nurse nurse : dao.readAll()){
nursesByName.put(nurse.getFirstName(), nurse);
}
return nursesByName;
}
}

View file

@ -0,0 +1,49 @@
package de.hitec.nhplus.model;
import javafx.beans.property.SimpleLongProperty;
import javafx.beans.property.SimpleStringProperty;
public class Nurse extends Person {
private SimpleLongProperty nid;
private final SimpleStringProperty phoneNumber;
public Nurse(
String firstName,
String surname,
String phoneNumber
) {
super(firstName, surname);
this.phoneNumber = new SimpleStringProperty(phoneNumber);
}
public Nurse(
long nid,
String firstName,
String surname,
String phoneNumber
) {
super(firstName, surname);
this.nid = new SimpleLongProperty(nid);
this.phoneNumber = new SimpleStringProperty(phoneNumber);
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber.set(phoneNumber);
}
public long getNid() {
return nid.get();
}
public SimpleLongProperty nidProperty() {
return nid;
}
public String getPhoneNumber() {
return phoneNumber.get();
}
public SimpleStringProperty phoneNumberProperty() {
return phoneNumber;
}
}