Skip to content

Instantly share code, notes, and snippets.

@justicee
Created June 23, 2018 06:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save justicee/87ad71f7e1ca74eb4e27ab84bb876d5a to your computer and use it in GitHub Desktop.
Save justicee/87ad71f7e1ca74eb4e27ab84bb876d5a to your computer and use it in GitHub Desktop.
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);
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