Created
October 24, 2018 09:10
-
-
Save LIttleAncientForestKami/e7c3243ef5a82f7c9da6af22f7716a73 to your computer and use it in GitHub Desktop.
Podroby - przykład (Mocking - an example)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package pl.edu.lafk.tdd.podroby; | |
/** | |
* @author Tomasz @LAFK_pl Borek | |
*/ | |
class Adres { | |
String ulica; | |
short nrLokalu; | |
short nrDomu; | |
Miasto miasto; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package pl.edu.lafk.tdd.podroby; | |
public enum Kraj { | |
PL, UK, US, DE | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package pl.edu.lafk.tdd.podroby; | |
public enum Miasto { | |
KRK, WAW, GDN, NYC, VAN, WDC, DFT, LON, EDI, DUB | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package pl.edu.lafk.tdd.podroby; | |
import java.time.LocalDate; | |
/** | |
* Przykładowa osoba | |
* | |
* @author Tomasz @LAFK_pl Borek | |
*/ | |
class Osoba { | |
private int id; | |
private String imie; | |
private String nazwisko; | |
private int wiek; | |
private Kraj kraj; | |
private LocalDate dataUrodzenia; | |
private Adres miejsceUrodzenia; | |
private Adres miejsceZamieszkania; | |
private Adres korespondencyjny; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package pl.edu.lafk.tdd.podroby; | |
import java.sql.Connection; | |
import java.sql.PreparedStatement; | |
import java.sql.ResultSet; | |
import java.sql.SQLException; | |
import java.util.Objects; | |
import javax.sql.DataSource; | |
public class OsobaDAO { | |
private DataSource ds; | |
public OsobaDAO(DataSource ds) { | |
this.ds = ds; | |
} | |
public void create(Osoba osoba) { | |
Objects.requireNonNull(osoba); | |
try { | |
Connection c = ds.getConnection(); | |
PreparedStatement stmt = c | |
.prepareStatement("INSERT INTO osoba (id, imie, nazwisko) values (?, ?, ?)"); | |
stmt.setInt(1, osoba.getId()); | |
stmt.setString(2, osoba.getImie()); | |
stmt.setString(3, osoba.getNazwisko()); | |
stmt.executeUpdate(); | |
c.close(); | |
} catch (SQLException e) { | |
System.err.println(e.getLocalizedMessage()); | |
} | |
} | |
public Osoba retrieve(int id) { | |
try { | |
Connection c = ds.getConnection(); | |
PreparedStatement stmt = c | |
.prepareStatement("SELECT id, imie, nazwisko FROM osoby WHERE id = ?"); | |
stmt.setInt(1, id); | |
ResultSet rs = stmt.executeQuery(); | |
if (!rs.first()) { | |
return null; | |
} | |
Osoba o = new Osoba(); | |
o.setId(rs.getInt(1)); | |
o.setImie(rs.getString(2)); | |
o.setNazwisko(rs.getString(3)); | |
c.close(); | |
return o; | |
} catch (SQLException e) { | |
System.err.println(e.getLocalizedMessage()); | |
} | |
return null; | |
} | |
public void update(Osoba osoba) { | |
Objects.requireNonNull(osoba); | |
try { | |
Connection c = ds.getConnection(); | |
PreparedStatement stmt = c | |
.prepareStatement("UPDATE osoba SET imie=?, nazwisko=? WHERE id=?"); | |
stmt.setString(1, osoba.getImie()); | |
stmt.setString(2, osoba.getNazwisko()); | |
stmt.setInt(3, osoba.getId()); | |
stmt.executeUpdate(); | |
c.close(); | |
} catch (SQLException e) { | |
System.err.println(e.getLocalizedMessage()); | |
} | |
} | |
public void delete(int id) { | |
try { | |
Connection c = ds.getConnection(); | |
PreparedStatement stmt = c | |
.prepareStatement("DELETE FROM osoby WHERE id=?"); | |
stmt.setInt(1, id); | |
stmt.executeUpdate(); | |
c.close(); | |
} catch (SQLException e) { | |
System.err.println(e.getLocalizedMessage()); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment