Created
June 23, 2018 06:19
-
-
Save justicee/87ad71f7e1ca74eb4e27ab84bb876d5a to your computer and use it in GitHub Desktop.
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
set SEARCH_PATH TO poliklinikajw; | |
CREATE OR REPLACE FUNCTION addLekarz( | |
id_lekarza integer, | |
imie text, | |
nazwisko text, | |
specjalizacja text, | |
id_cennika INTEGER, | |
nr_gabinetu INTEGER) | |
RETURNS integer AS | |
$BODY$ | |
DECLARE | |
i integer; | |
BEGIN | |
INSERT INTO poliklinikajw.lekarz(id_lekarza, imie,nazwisko, specjalizacja, id_cennika, nr_gabinetu) values( id_lekarza, imie,nazwisko,specjalizacja, id_cennika, nr_gabinetu ); | |
i:=lastval(); | |
RETURN i; | |
END; | |
$BODY$ | |
LANGUAGE plpgsql VOLATILE | |
COST 100; | |
CREATE FUNCTION addlekarz(id_lekarza integer, imie text, nazwisko text, specjalizacja text, id_cennika integer, nr_gabinetu integer) | |
RETURNS void | |
LANGUAGE plpgsql | |
AS $$ | |
DECLARE | |
i integer; | |
BEGIN | |
INSERT INTO poliklinikajw.lekarz(id_lekarza, imie,nazwisko, specjalizacja, id_cennika, nr_gabinetu) values( id_lekarza, imie,nazwisko,specjalizacja, id_cennika, nr_gabinetu ); | |
END; | |
$$; | |
CREATE FUNCTION deletelekarz(ido integer) | |
RETURNS boolean | |
LANGUAGE plpgsql | |
AS $$ | |
DECLARE | |
bool boolean; | |
BEGIN | |
DELETE FROM poliklinikajw.lekarz | |
WHERE id_lekarza = idO; | |
RETURN true; | |
END; | |
$$; | |
CREATE FUNCTION poliklinikajw.updatelekarz(ido integer, imie text, nazwisko text, specjalizacja text, id_cennika integer, nr_gabinetu integer) | |
RETURNS integer | |
LANGUAGE plpgsql | |
AS $$ | |
DECLARE | |
i integer; | |
BEGIN | |
UPDATE poliklinikajw.lekarz | |
SET imie=imie, | |
nazwisko=nazwisko, | |
specjalizacja=specjalizacja, | |
id_cennika=id_cennika, | |
nr_gabinetu=nr_gabinetu | |
WHERE id_lekarza = idO; | |
i:=idO; | |
RETURN i; | |
END; | |
$$; | |
set SEARCH_PATH to zaliczeniek; | |
CREATE table lekarz ( | |
id_lekarza SERIAL PRIMARY KEY, | |
id_cennika int NOT NULL , | |
specjalizacja_lekarza text NOT NULL , | |
imie_lekarza text NOT NULL , | |
nazwisko_lekarza text NOT NULL , | |
nr_gabinetu int NOT NULL | |
); | |
CREATE table pacjent ( | |
id_pacjenta SERIAL PRIMARY KEY, | |
id_wizyta int NOT NULL , | |
imie_pacjenta text NOT NULL , | |
nazwisko_pacjenta text NOT NULL , | |
pesel BIGINT NOT NULL | |
); | |
CREATE table lekarz_pacjent ( | |
id_l_p SERIAL PRIMARY KEY, | |
id_lekarza int NOT NULL , | |
id_pacjenta int NOT NULL | |
); | |
ALTER TABLE lekarz_pacjent | |
ADD CONSTRAINT id_lekarza_fk | |
FOREIGN KEY (id_lekarza) REFERENCES lekarz (id_lekarza) ON DELETE CASCADE; | |
ALTER TABLE lekarz_pacjent | |
ADD CONSTRAINT id_pacjenta_fk | |
FOREIGN KEY (id_pacjenta) REFERENCES pacjent (id_pacjenta) ON DELETE CASCADE; | |
INSERT INTO lekarz | |
VALUES | |
(1,1,'okulista','Jan','Kowalski',20), | |
(2,2,'kardiolog','Jagoda','Kowal',21), | |
(3,3,'neurolog','Adam','Rogulski',22), | |
(4,4,'chirurg','Sandra','Nowak',23), | |
(5,5,'pediatra','Kinga','Sobol',24); | |
INSERT INTO pacjent | |
VALUES | |
(1,1 ,'Karol','Maga' ,97042800123), | |
(2,2 ,'Karolina','Stempel' ,98072078789), | |
(3,3 ,'Iza','Lis' ,93214587001), | |
(4,4 ,'Antoni','Deja' ,97004752142), | |
(5,5 ,'Sebastian','Prymula' ,77142812142); | |
INSERT INTO lekarz_pacjent | |
VALUES | |
(1,1,1), | |
(2,2,2), | |
(3,3,3), | |
(4,4,4), | |
(5,5,5); | |
CREATE FUNCTION updatelekarz(ido integer, imiex character varying, nazwiskox character varying, specjalizacjax character varying, id_cennikax integer, nr_gabinetux integer) | |
RETURNS integer | |
LANGUAGE plpgsql | |
AS $$ | |
DECLARE | |
i integer; | |
BEGIN | |
UPDATE poliklinikajw.lekarz | |
SET imie=imiex, | |
nazwisko=nazwiskox, | |
specjalizacja=specjalizacjax, | |
id_cennika=id_cennikax, | |
nr_gabinetu=nr_gabinetux | |
WHERE id_lekarza = idO; | |
i:=idO; | |
RETURN i; | |
END; | |
$$; | |
select * from updatelekarz(10,'AAA', 'BBBB', 'Spec', 3, 22); | |
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 sample; | |
import javafx.collections.FXCollections; | |
import javafx.collections.ObservableList; | |
import javafx.scene.control.SelectionMode; | |
import javafx.scene.control.TableView; | |
import javafx.scene.control.TextField; | |
import static javax.swing.JOptionPane.showMessageDialog; | |
import com.sun.glass.ui.View; | |
import java.sql.CallableStatement; | |
import java.sql.Connection; | |
import java.sql.DriverManager; | |
import java.sql.ResultSet; | |
import java.lang.Integer; | |
public class Controller { | |
public TableView tabela; | |
public TextField f2; | |
public TextField f3; | |
public TextField f4; | |
public TextField f5; | |
public TextField f6; | |
public TextField f7; | |
Connection cn = null; | |
private Object lekarz; | |
private void baza() { | |
try { | |
Class.forName("org.postgresql.Driver"); | |
cn = DriverManager.getConnection("jdbc:postgresql://localhost:5555/student", "student", "wsiz#1234"); | |
//showMessageDialog(null, "Baza danych dostępna"); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
System.err.println(e.getClass().getName() + ": " + e.getMessage()); | |
System.exit(0); | |
} | |
} | |
public void start() { | |
zapis(); | |
} | |
private void zapis() { | |
ObservableList<Lekarz> data; | |
ResultSet rs; | |
data = FXCollections.observableArrayList(); | |
baza(); | |
try { | |
String SQL = "select id_lekarza, imie, nazwisko, specjalizacja,id_lekarza,nr_gabinetu from poliklinikajw.lekarz"; | |
rs = cn.createStatement().executeQuery(SQL); | |
//cn.close(); | |
while (rs.next()) { | |
Lekarz lekarz = new Lekarz(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4),rs.getInt(5),rs.getInt(6)); | |
lekarz.getIdLekarza(); | |
lekarz.getImie(); | |
lekarz.getNazwisko(); | |
lekarz.getSpecjalizacja(); | |
lekarz.getId_cennika(); | |
lekarz.getNr_gabinetu(); | |
data.add(lekarz); | |
} | |
} catch (Exception e) { | |
e.printStackTrace(); | |
System.out.println("Błąd w danych"); | |
} | |
//tabela.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); | |
tabela.setItems(data); | |
tabela.setVisible(true); | |
} | |
public void dodaj() { | |
Connection cn = null; | |
CallableStatement cst = null; | |
String imie,nazwisko,specjalizacja; | |
Integer id_lekarza,id_cennika, nr_gabinetu; | |
id_lekarza = Integer.parseInt(f5.getText()); | |
id_cennika = Integer.parseInt(f6.getText()); | |
nr_gabinetu = Integer.parseInt(f7.getText()); | |
imie = f2.getText(); | |
nazwisko= f3.getText(); | |
specjalizacja = f4.getText(); | |
try { | |
Class.forName("org.postgresql.Driver"); | |
cn = DriverManager.getConnection("jdbc:postgresql://localhost:5555/student", "student", "wsiz#1234"); | |
showMessageDialog(null, "Baza danych dostepna"); | |
cst = cn.prepareCall("{call poliklinikajw.addlekarz(?,?,?,?,?,?)}"); | |
cst.setInt(1, id_lekarza); | |
cst.setString(2,imie); | |
cst.setString(3, nazwisko); | |
cst.setString(4, specjalizacja); | |
cst.setInt(5, id_cennika); | |
cst.setInt(6, nr_gabinetu); | |
cst.execute(); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
System.out.println("Błąd w procedurze"); | |
} | |
zapis(); | |
} | |
public void kasuj() { | |
int i, ido; | |
CallableStatement cst = null; | |
Object lekarz = (Lekarz) tabela.getSelectionModel().getSelectedItem(); | |
System.out.println(lekarz); | |
if (lekarz == null) { | |
showMessageDialog(null, "Proszę wybrać wiersze do skasowania"); | |
return; | |
} | |
try { | |
baza(); | |
i = ((Lekarz) lekarz).getIdLekarza(); | |
System.out.println(i); | |
if (i == 0) { | |
showMessageDialog(null, "Brak danych w tabeli!!!"); | |
return; | |
} | |
ido = i; | |
System.out.println(1); | |
cst = cn.prepareCall("{call poliklinikajw.deletelekarz(?)}"); | |
cst.setInt(1, ido); | |
cst.execute(); | |
cn.close(); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
System.out.println("Błąd w kasowaniu"); | |
} | |
zapis(); | |
} | |
public void zmien() { | |
int i, ido; | |
CallableStatement cst = null; | |
Object lekarz = (Lekarz) tabela.getSelectionModel().getSelectedItem(); | |
System.out.println(lekarz); | |
if (lekarz == null) { | |
showMessageDialog(null, "Proszę wybrać wiersze do modyfikacji"); | |
return; | |
} | |
String imie,nazwisko,specjalizacja; | |
Integer id_cennika, nr_gabinetu; | |
// id_lekarza = Integer.parseInt(f5.getText()); | |
id_cennika = Integer.parseInt(f6.getText()); | |
nr_gabinetu = Integer.parseInt(f7.getText()); | |
imie = f2.getText(); | |
nazwisko= f3.getText(); | |
specjalizacja = f4.getText(); | |
try { | |
baza(); | |
i = ((Lekarz) lekarz).getIdLekarza(); | |
System.out.println(i); | |
if (i == 0) { | |
showMessageDialog(null, "Brak danych w tabeli!!!"); | |
return; | |
} | |
ido = i; | |
System.out.println(1); | |
cst = cn.prepareCall("{call poliklinikajw.updatelekarz(?,?,?,?,?,?)}"); | |
cst.setInt(1, ido); | |
cst.setString(2, imie); | |
cst.setString(3, nazwisko); | |
cst.setString(4, specjalizacja); | |
cst.setInt(5, id_cennika); | |
cst.setInt(6, nr_gabinetu); | |
cst.execute(); | |
cn.close(); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
System.out.println("Błąd w modyfikacji"); | |
} | |
zapis(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment