#16 story/pfleger-modul-grundimplementierung #20
5 changed files with 239 additions and 0 deletions
|
@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
115
src/main/java/de/hitec/nhplus/datastorage/NurseDao.java
Normal file
115
src/main/java/de/hitec/nhplus/datastorage/NurseDao.java
Normal 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 nurse (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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -23,6 +23,12 @@ public class Fixtures
|
||||||
treatmentFixture.dropTable(connection);
|
treatmentFixture.dropTable(connection);
|
||||||
treatmentFixture.setupTable(connection);
|
treatmentFixture.setupTable(connection);
|
||||||
treatmentFixture.load();
|
treatmentFixture.load();
|
||||||
|
|
||||||
|
NurseFixture nurseFixture = new NurseFixture();
|
||||||
|
nurseFixture.dropTable(connection);
|
||||||
|
nurseFixture.setupTable(connection);
|
||||||
|
nurseFixture.load();
|
||||||
|
|
||||||
} catch (Exception exception){
|
} catch (Exception exception){
|
||||||
System.out.println(exception.getMessage());
|
System.out.println(exception.getMessage());
|
||||||
}
|
}
|
||||||
|
|
65
src/main/java/de/hitec/nhplus/fixtures/NurseFixture.java
Normal file
65
src/main/java/de/hitec/nhplus/fixtures/NurseFixture.java
Normal 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 (" +
|
||||||
|
"tid INTEGER 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;
|
||||||
|
}
|
||||||
|
}
|
49
src/main/java/de/hitec/nhplus/model/Nurse.java
Normal file
49
src/main/java/de/hitec/nhplus/model/Nurse.java
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue