Databázy (2) Prednáška 02. Alexander Šimko

Veľkosť: px
Začať zobrazovať zo stránky:

Download "Databázy (2) Prednáška 02. Alexander Šimko"

Prepis

1 Databázy (2) Prednáška 02 Alexander Šimko

2 Contents I

3 Upozornenie Prezentovaný kód nie vždy správne ošetruje chyby a uzatvára objekty. Je to kompromis, aby sa dal dať na slajdy aspoň trochu čitateľne.

4 Section 1

5 pre rôzne typy aplikácii to môže byť rôzne

6 Podnikové (enterprise) aplikácie Typické operácie CRUD operácie nad entitami zobraz zoznam zákazníkov zobraz detail zákazníka aktualizuj, pridaj, odober zákazníka Zložitejšie doménové operácie prevod peňazí medzi účtami pripisovanie úrokov na účty účtovanie poplatkov za služby Reporty/Štatistiky počet nových zákazníkov sa jednotlivé kvartály zisky za jednotlivé služby po jednotlivých mesiacoch

7 Špagetový kód Určite nie ako špagetový kód kód, ktorý nie je dobre organizovaný do logických celkov je prepletený ako špagety nikto sa už v ňom nevyzná

8 Špagetový kód Špagetový kód Éra príkazu GOTO

9 Špagetový kód Špagetový kód Čo zle sa môže stať?

10 Špagetový kód Špagetový kód Éra bez GOTO Miešame dokopy spracovanie a kontrolu vstupu od používateľa generovanie výstupu (HTML, kreslenie čiar,...) vykonávanie doménovej logiky práca s databázou

11 Špagetový kód Špagetový kód CRUD customers id : integer first_name : varchar last_name : varchar address : varchar birth_number : varchar gender : char(1)

12 Špagetový kód Špagetový kód CRUD Zobrazenie zákazníka class GUI { TextField firstname; TextField lastname; TextField birthnumber; TextField address; ComboBox gender; Label message;..

13 Špagetový kód Špagetový kód CRUD Zobrazenie zákazníka void showuser(int id) { Connection c =... PreparedStatement s = c.preparestatement("select * FROM customers WHERE id =?"); s.setint(1, id); ResultSet r = s.executequery(); if (r.next() == true) { firstname.settext(r.getstring("first_name"); lastname.settext(r.getstring("last_name"); birthnumber.settext(r.getstring("birth_number"); address.settext(r.getstring("address"); gender.setvalue(r.getstring("gender"); else { message.settext("no such customer exists"); s.close(); c.close();

14 Špagetový kód Špagetový kód CRUD Pridávanie zákazníka void onaddclicked() { if (firstname.gettext().isempty()) { message.settext("first name cannot be empty"); return; if (lastname.gettext().isempty()) { message.settext("last name cannot be empty"); return;

15 Špagetový kód Špagetový kód CRUD Pridávanie zákazníka Connection c =... PreparedStatement s = c.preparestatement("select * FROM customers WHERE birthnumber =?"); s.setstring(1, birthnumber.gettext()); ResultSet r = s.executequery(); if (r.next() == true) { message.settext("customer with given birth number already exists"); r.close(); s.close(); c.close(); return; r.close(); s.close();

16 Špagetový kód Špagetový kód CRUD Pridávanie zákazníka s = c.preparestatement("insert INTO customers (first_name, last_name, address, gender) VALUES(?,?,?,?)"); s.setstring(1, firstname.gettext()); s.setstring(2, lastname.gettext()); s.setstring(3, address.gettext()); s.setstring(4, gender.getselectedvalue()); try { s.executeupdate(); message.settext("customer was successfully added."); catch (SQLException e) { message.settext("could not perform the operation. Please try again."); s.close(). c.close();

17 Špagetový kód Špagetový kód Prečo to takto nerobiť? veľmi zle sa udržuje vysoká šanca chýb, ktoré sa potom ťažko hľadajú a opravujú veľmi obtiažne sa dopĺňajú nové požiadavky nový človek nemá šancu kódu porozumieť predlžuje čas tvorby softvéru a jeho náklady

18 Špagetový kód Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live

19 Row Data Gateway Problém Prepletené GUI a prístup k databáze na rôznych miestach v GUI kóde spúšťame rovnaké/podobné SQL príkazy názvy stĺpcov máme na rôznych miestach v GUI ak zmeníme názov tabuľky/stĺpca a pod, musíme meniť kód na veľa miestach navyše sú názvy tabuliek/stĺpcov ako reťazcové literály, čiže strácame statickú kontrolu kompilátorom a možnosť refaktorovania pomocou IDE

20 Row Data Gateway Čo takto zaobaliť prístup k DB do samostatnej triedy? customers id : integer first_name : varchar last_name : varchar address : varchar birth_number : varchar gender : char(1) class Customer { Integer id; String firstname; String lastname; String address; String birthnumber; String gender;

21 Row Data Gateway Čo takto zaobaliť prístup k DB do samostatnej triedy? static Customer findbyid(int id) { Connection c =... PreparedStatement s = c.preparestatement("select * FROM customers WHERE id =?"); s.setint(1, id); return loadone(s); static Customer findbybirthnumber(string birthnumber) { Connection c =... PreparedStatement s = c.preparestatement("select * FROM customers WHERE birth_number =?"); s.setint(1, birthnumber); return loadone(s);

22 Row Data Gateway Čo takto zaobaliť prístup k DB do samostatnej triedy? static Customer loadone(preparedstatement s) { ResultSet r = s.executequery(); if (r.next()) { return load(r); else { return null; static Customer load(resultset r) { Customer customer = new Customer(); customer.id = r.getint("id"); customer.firstname = r.getstring("first_name"); customer.lastname = r.getstring("last_name"); customer.address = r.getstring("address"); customer.birthnumber = r.getstring("birth_number"); customer.gender = r.getstring("gender"); return customer;

23 Row Data Gateway Čo takto zaobaliť prístup k DB do samostatnej triedy? static List<Customer> findall() { Connection c =... PreparedStatement s = c.preparestatement("select * FROM customers"); return loadall(s); static List<Customer> loadall(preparedstatement s) { ResultSet r = s.executequery(); List<Customer> customers = new ArrayList<>(); while (r.next()) { customers.add(load(r)); return customers;

24 Row Data Gateway Čo takto zaobaliť prístup k DB do samostatnej triedy? void insert() { Connection c =... PreparedStatement s = c.preparestatement("insert INTO customers (first_name, last_name, address, birth_number, gender) VALUES(?,?,?,?,?) RETURING id"); s.setstring(1, firstname); s.setstring(2, lastname); s.setstring(3, address); s.setstring(4, birth_number); s.setstring(5, gender); ResultSet r = s.executequery(); if (r.next()) { this.id = r.getint("id"); r.close(); s.close();

25 Row Data Gateway Čo takto zaobaliť prístup k DB do samostatnej triedy? void update() { Connection c =... PreparedStatement s = c.preparestatement("update customers SET first_name =?, last_name =?, address =?, birth_number =?, gender =? WHERE id =?"); s.setstring(1, firstname); s.setstring(2, lastname); s.setstring(3, address); s.setstring(4, birth_number); s.setstring(5, gender); s.setint(6, id); s.executeupdate(); s.close();

26 Row Data Gateway Čo takto zaobaliť prístup k DB do samostatnej triedy? void delete() { PreparedStatement s = c.preparestatement("delete customers WHERE id =?"); s.setint(1, id); s.executeupdate(); s.close();

27 Row Data Gateway Vylepšený kód CRUD Zobrazenie zákazníka class GUI { TextField firstname; TextField lastname; TextField birthnumber; TextField address; ComboBox gender; Label message;..

28 Row Data Gateway Vylepšený kód CRUD Zobrazenie zákazníka void showuser(int id) { Customer c = Customer.findById(id); if (c!= null) { firstname.settext(c.firstname); lastname.settext(c.lastname); birthnumber.settext(c.birthnumber); address.settext(c.address); gender.setvalue(c.gender); else { message.settext("no such customer exists");

29 Row Data Gateway Vylepšený kód CRUD Pridávanie zákazníka void onaddclicked() { if (firstname.gettext().isempty()) { message.settext("first name cannot be empty"); return; if (lastname.gettext().isempty()) { message.settext("last name cannot be empty"); return;

30 Row Data Gateway Vylepšený kód CRUD Pridávanie zákazníka Customer existing = Customer.findByBirthNumber(birthNumber.getText()); if (existing!= null) { message.settext("customer with the given birth number already exists"); return; Customer customer = new Customer(); customer.firstname = firstname.gettext(); customer.lastname = lastname.gettext(); customer.address = address.gettext(); customer.gender = gender.getselectedvalue(); customer.insert();

31 Row Data Gateway Čo sme tým získali? kód je prehľadnejší všetok SQL kód týkajúci sa tabuľky customers je v triede Customer čisto databázové zmeny sa prejavia iba v zmene tejto triedy máme statickú kontrolu názvov stĺpcov, nakoľko sú to teraz členské premenné triedy trieda Customer slúži aj ako dokumentácia hovoríme ňou, že systém narába so zákazníkmi

32 Row Data Gateway To, čo sme si práve ukázali je vzor Row Data Gateway je to architektonický vzor na oddelenie kódu na prístup k databáze pre jednu tabuľku vytvoríme jednu Row Data Gateway triedu inštancia triedy reprezentuje jeden riadok tabuľky členské premenné mapujú stĺpce tabuľky 1:1 RowDataGateway column1... dolumnn insert() update() delete() uses Finder findbyid(id) findbycolumn1(value) metódy na nájdenie riadku/ov v špeciálnej triede Finder alebo ako statické metódy triedy RowDataGateway

33 Row Data Gateway Row Data Gateway súvisiace argumenty pokope na výpočet oslovenia osoby potrebujeme viac atribútov zákazníka namiesto viacerých argumentov použijeme triedu Customer class Service { String getaddressline(customer c, String language) { if("en".equals(language)) { if (/* is male */) { return "Mr " + c.firstname + " " + c.lastname; else if (/* is younger that 15 */) { return "Miss " + c.firstname + " " + c.lastname; else { return "Ms " + c.firstname + " " + c.lastname;...

34 Row Data Gateway Zapúzdrenie členských premenných zmena členských premenných na private zavedenie public metód getxy a setxy

35 Row Data Gateway Zapúzdrenie členských premenných Kontrola argumentov class Customer { private String birthnumber; public String getbirthnumber() { return birthnumber; public void setbirthnumber(string birthnumber) { if (birthnumber == null) { throw new IllegalArgumentException(); if (birthnumber.matches("[0-9]{6/[0-9]{3,4" == false) { throw new IllegalArgumentException(); this.birthnumber = birthnumber;...

36 Row Data Gateway public void setgender(string gender) { this.gender = gender.equals("m")? Gender.MALE : Gender.FEMALE;... Zapúzdrenie členských premenných Zmena reprezentácie môžeme zmeniť vnútornú reprezentáciu bez rozbitia zvyšku kódu enum Gender { MALE, FEMALE class Customer { private Gender gender; // povodne String, teraz Gender public String getgender() { return gender == Gender.MALE? "M" : "F";

37 Row Data Gateway Zapúzdrenie členských premenných Vypočítané stĺpce class Customer { private String firstname; private String lastname; public String getfirstname() { return firstname; public String getlastname() { return lastname; public String getfullname() { return String.format("%s %s", firstname, lastname);... k pôvodným a vypočítaným stĺpcom pristupujeme rovnako

38 Row Data Gateway Cudzie kľúče ostávajú tak ako sú customers id : integer... transfer_limit : numeric accounts number : varchar balance : numberic overdraft : boolen owner_id : integer class Account { String number; BigDecimal balance; boolean overdraft; int ownerid; // toto je primarny kluc // toto je cudzi kluc...

39 Row Data Gateway Väzobné tabuľky sú tiež iba tabuľky customers id : integer first_name : varchar last_name : varchar... customer-badges id : integer customer_id : integer badge_id : integer badges id : integer name : varchar class CustomerBadge { Integer id; int customerid; int badgeid;...

40 Row Data Gateway Hodí sa zaobaliť aj vypočítané tabuľky (napr. štatistiky) SELECT ceil(balance / 100.0)*100.0 AS upper_bound, count(*) FROM accounts GROUP BY upper_bound ORDER BY upper_bound class RangeStatistic { BigDecimal upperbound; int count; static List<RangeStatistic> findall() { Connection c =... PreparedStatement s = c.preparestatement("select ceil...");...

41 Row Data Gateway Potom treba prehodnotiť či majú pre nás zmysel operácie insert update delete to závisí od kontrétneho prípadu, čo naozaj potrebujeme

42 Row Data Gateway Čo s nejakým špecifickým SQL príkazom? Napr. UPDATE, čo modifikuje tisíce riadkov Vyriešiť obdobne ako metódu find zaobaliť do metódy dať ju ako statickú do Row Data Gateway alebo do špeciálnej na to určenej triedy

43 Špagetový kód pokračuje Špagetový kód Prevod peňazí customers id : integer... transfer_limit : numeric accounts number : varchar balance : numberic overdraft : boolen owner_id : integer prevod peňazí medzi zdrojovým a cieľovým účtom kontrola, či je na zdrojovom účte dosť peňazí kontrola, či neprekračujeme limit nastavený majiteľom účtu

44 Špagetový kód pokračuje Špagetový kód Prevod peňazí class GUI { TextField sourcefield; TextField destinationfield; TextField amountfield; Label message; void ontransferclicked() { String source = sourcefield.gettext(); String destination = destinationfield.gettext(); BigDecimal amount = new BigDecimal(amountField.getText());

45 Špagetový kód pokračuje Špagetový kód Prevod peňazí Connection c =... PreparedStatement s = c.preparestatement("select * FROM accounts WHERE number =?"); s.setstring(1, source); ResultSet r = s.executequery(); if (r.next() == false) { message.settext("source account does not exist"); r.close(); s.close(); c.close(); return;

46 Špagetový kód pokračuje Špagetový kód Prevod peňazí BigDecimal sourcebalance = r.getbigdecimal("balance"); boolean overdraft = r.getboolean("overdraft"); integer ownerid = r.getint("owner_id"); r.close(); PreparedStatement cs = c.preparestatement("select * FROM customers WHERE id =?"); cs.setinteger(1, ownerid); r = cs.executequery(); r.next(); BigDecimal transferlimit = r.getbigdecimal("transfer_limit"); r.close(); cs.close();

47 Špagetový kód pokračuje Špagetový kód Prevod peňazí if (amount.compareto(transferlimit) > 0) { message.settext("transfer limit exceeded"); s.close(); c.close(); return; if (overdraft == false sourcebalance.compareto(amount) < 0) { message.settext("insufficient banance on the source account"); s.close(); c.close(); return;...

48 Špagetový kód pokračuje Prvé zlepšenie Row Data Gateway class GUI { TextField sourcefield; TextField destinationfield; TextField amountfield; Label message; void ontransferclicked() { String source = sourcefield.gettext(); String destination = destinationfield.gettext(); BigDecimal amount = new BigDecimal(amountField.getText());

49 Špagetový kód pokračuje Prvé zlepšenie Row Data Gateway Account sourceaccount = Account.find(source); if (sourceaccount == null) { message.settext("source account does not exist"); return; Account destinationaccount = Account.find(destination); if (destinationaccount == null) { message.settext("destination account does not exist"); return; Customer customer = Customer.find(sourseAccount.ownerId); if (amount.compareto(customer.transferlimit) > 0) { message.settext("transfer limit exceeded"); return;

50 Špagetový kód pokračuje Prvé zlepšenie Row Data Gateway if (sourceaccount.overdraft == false sourceaccount.balance.compareto(amount) < 0) { message.settext("insufficient balance on the source account"); return; sourceaccount.balance = sourceaccount.balance.substract(amount); destinationaccount.balance = destinationaccount.balance.add(amount); sourceaccount.update(); destinationaccount.update(); message.settext("transfer succeeded");

51 Transaction Script Problém Prepletené GUI a doménová logika Tá istá metóda rieši: ako získať vstup od používateľa ako vykonať doménovú logiku ako zobraziť doménové chyby používateľovi Ak budeme chcieť vykonať tú istú doménovú operáciu z iného používateľského rozhrania, musíme duplikovať kód.

52 Transaction Script Čo takto osamostatniť doménovú operáciu? class Banking { static void transfer(string source, String destination, BigDecimal amount) { Account sourceaccount = Account.find(source); if (sourceaccount == null) throw new Exception("Source account does not exist"); Account destinationaccount = Account.find(destination); if (destinationaccount == null) throw new Exception("Destination account does not exist"); Customer customer = Customer.find(sourseAccount.ownerId); if (amount.compareto(customer.transferlimit) > 0) throw new Exception("Transfer limit exceeded");

53 Transaction Script Čo takto osamostatniť doménovú operáciu? if (sourceaccount.overdraft == false sourceaccount.balance.compareto(amount) < 0) throw new Exception("Insufficient balance on the source account"); sourceaccount.balance = sourceaccount.balance.substract(amount); destinationaccount.balance = destinationaccount.balance.add(amount); sourceaccount.update(); destinationaccount.update();

54 Transaction Script Čo takto osamostatniť doménovú operáciu? class GUI { TextField sourcefield; TextField destinationfield; TextField amountfield; Label message; void ontransferclicked() { String source = sourcefield.gettext(); String destination = destinationfield.gettext(); BigDecimal amount = new BigDecimal(amountField.getText()); try { Banking.transfer(source, destination, amount); message.settext("transfer succeeded"); catch(exception e) { message.settext(e.getmessage());

55 Transaction Script To, čo sme si práve ukázali je vzor Transaction Script je to architektonický vzor na oddelenie kódu doménových operácii jedna operácia/požiadavka jedna procedúra je to také procedurálne programovanie v OOP jazykoch to skončí na tiedach, ktoré majú iba (statické) metódy a žiadne členské premenné/atribúty TransactionScript operation(argument1,..., argumentn) Alterantívy buď každý skript ako jediná metóda v samostatnej triede alebo nejako rozumne zoskupiť viac metód do jednej triedy

56 Transaction Script Čo sme tým získali? kód je prehľadnejší doménová operácia je oddelená môžeme ju volať z viacerých miest bez duplicity kódu zmeny v tejto operácii sa prejavia v kóde iba na jednom mieste trieda Banking a metóda transfer slúžia aj ako dokumentácia hovoríme nimi, že systém vykonáva takú operáciu

57 Rekapitulácia Je vhodné oddeliť kód realizujúci prístup k DB vzor Row Data Gateway doménové operácie vzor Transaction Script využíva Row Data Gateway používateľské rozhranie využíva Transaction Script využíva Row Data Gateway

58 Ešte jeden problém Aktuálny stav kód je síce rozdelený prístup k DB a doménové operácie bežia na tom istom počítači ako GUI

59 Ešte jeden problém Aktuálny stav jeden PostgreSQL server s jednou databázou viac klientských počítačov, na ktorých beží doménový kód server PostgreSQL Banková aplikácia Banková aplikácia Banková aplikácia klientské PC klientské PC klientské PC

60 Ešte jeden problém Aké to má nevýhody? citlivý kód ako prevod peňazí beží u klienta program sa dá dekompilovať a upraviť, aby robil niečo iné program sa dá dekompilovať, a tak zdrojové kódy nie sú chránené pred ukradnutím ak chceme mať dva internet bankingy, desktopový a mobilný, v oboch klientoch máme kód na prevod peňazí

61 Back end a front end Čo takto rozdeliť program na dva? back end serverová aplikácia implementuje doménovú logiku cez HTTP príjima volania metód a posiela odpovede front end desktopová/mobilná aplikácia implementuje používateľské rozhranie cez HTTP volá metódy backendu

62 Back end a front end class Backend { static void main() { // bezi na localhost:8000 HttpServer server = HttpServer.create(new InetSocketAddress(8000),0); server.createcontext("/transfer", new TransferHandler()); server.setexecutor(executors.newcachedthreadpool()); server.start(); class TransferHandler implements HttpHandler { void handle(httpexchange exchange) { String query = exchange.getrequesturi().getquery(); String source = // vytiahni argument z query String destination // vytiahni argument z query BigDecimal amount = // vytiahni argument z query Banking.transfer(source, destination, amount); // do exchange vypis ze sa prevod podaril Ukážka jednoduchého backendu

63 Back end a front end Ukážka jednoduchého frontendu class GUI { TextField sourcefield; TextField destinationfield; TextField amountfield; Label message; void ontransferclicked() { String message = Unirest.get(" sourcefield.gettext()).querystring("destination", destinationfield.gettext()).querystring("amount", amountfield.gettext()).asstring().getbody(); message.settext(message);

64 Back end a front end Nový stav server s backendom pripájajúcim sa na PostgreSQL veľa inštancií frontendu server PostgreSQL Back end Front end Front end Front end klientské PC klientské PC klientské PC

65 Back end a front end Backend musí spúštať príkazy paralelne každá požiadavka je v backende obslúžená v samostatnom vlákne JDBC spojenia sú síce threadsafe, ale blokujúce (prístup z viacerých vlákien) každé vlánko potrebuje vlastné spojenie

66 Back end a front end Zakaždým vytvoríme nové spojenie class TransferHandler implements HttpHandler { void handle(httpexchange exchange) { Connection c = datasource.getconnection();... c.close();

67 Back end a front end Predávanie si spojenia pripomenutie z minula class DbContext { private static Connection connection; private DbContext() {; // tymto zakazeme robit instancie static void setconnection(connection c) { connection = c; static Connection getconnection() { return connection; static void closeconnection() { if (connection!= null) { connection.close(); connection = null;

68 Back end a front end Predávanie si spojenia pripomenutie z minula class DbContext { private static Connection connection; // do statickej premennej connection vieme ulozit iba jednu hodnotu

69 Uchovávanie si spojení vo viacvláknovom prostredí java.lang.threadlocal je to úložisko jednej hodnoty T get() void set(t value) každé vlákno ale vidí iba hodnotu, ktorú zapísalo ono

70 Uchovávanie si spojení vo viacvláknovom prostredí java.lang.threadlocal ThreadLocal<Integer> value = new ThreadLocal<>(); Thread 1 Thread value.set(10) value.set(12) value.get() == 10 value.get() == 12

71 Uchovávanie si spojení vo viacvláknovom prostredí java.lang.threadlocal // toto je iba ilustracna zjednodusena implementacia class ThreadLocal<T> { void set(t value) { // kazde vlakno ma priradenu svoju mapu Map values = Thread.getCurrent().getThreadLocalMap(); values.put(this, value); void T get() { Map values = Thread.getCurrent().getThreadLocalMap(); return values.get(this);

72 Uchovávanie si spojení vo viacvláknovom prostredí DbContext s ThreadLocal class DbContext { static ThreadLocal<Connection> connection = new ThreadLocal<>(); private DbContext() {; // tymto zakazeme robit instancie static void setconnection(connection c) { connection.set(c); static Connection getconnection() { return connection.get(); static void closeconnection() { if (connection.get()!= null) { connection.get().close(); connection.set(null);

73 Uchovávanie si spojení vo viacvláknovom prostredí DbContext s ThreadLocal class TransferHandler implements HttpHandler { void handle(httpexchange exchange) { String query = exchange.getrequesturi().getquery(); String source = // vytiahni argument z query String destination // vytiahni argument z query BigDecimal amount = // vytiahni argument z query // ziskame nove spojenie a nastavime ho pre vlakno DbContext.setConnection(dataSource.getConnection()); Banking.transfer(source, destination, amount); // uzavrie spojenie pre svoje vlakno DbContext.closeConnection();

74 Uchovávanie si spojení vo viacvláknovom prostredí DbContext s ThreadLocal nemusíme stále opakovať argument Connection každé vlákno si uchováva svoje vlastné spojenie vhodné aj pre viacvláknovú aplikáciu

75 Uchovávanie si spojení vo viacvláknovom prostredí Odkiaľ sa vezme DataSource? class TransferHandler implements HttpHandler { void handle(httpexchange exchange) { String query = exchange.getrequesturi().getquery(); String source = // vytiahni argument z query String destination // vytiahni argument z query BigDecimal amount = // vytiahni argument z query // odkial sa vezme datasource? DbContext.setConnection(dataSource.getConnection()); Banking.transfer(source, destination, amount); DbContext.closeConnection();

76 Uchovávanie si spojení vo viacvláknovom prostredí static void closeconnection() { if (connection.get()!= null) { connection.get().close(); connection.set(null); DataSource v DbContext class DbContext { static DataSource ds; static ThreadLocal<Connection> connection = new ThreadLocal<>(); static void setdatasource(datasource d) { ds = d; static Connection getconnection() { if (connection.get() == null) { connection.set(ds.getconnection()); return connection.get();

77 Uchovávanie si spojení vo viacvláknovom prostredí Backend Vytvorenie DataSource class Backend { static void main() { // bezi na localhost:8000 PgSimpleDataSource ds = new PgSimpleDataSource(); ds.setservername("server name"); ds.setservername("database name"); ds.setportnumber(5432); ds.setuser("user"); ds.setpassword("password"); DbContext.setDataSource(ds); HttpServer server = HttpServer.create(new InetSocketAddress(8000),0); server.createcontext("/transfer", new TransferHandler()); server.setexecutor(executors.newcachedthreadpool()); server.start();

78 Uchovávanie si spojení vo viacvláknovom prostredí Backend Vytváranie a zatváranie spojenia class TransferHandler implements HttpHandler { void handle(httpexchange exchange) { String query = exchange.getrequesturi().getquery(); String source = // vytiahni argument z query String destination // vytiahni argument z query BigDecimal amount = // vytiahni argument z query // cez DbContext.getConnection() // ziska nove spojenie Banking.transfer(source, destination, amount); // zatvori spojenie DbContext.closeConnection();

79 Uchovávanie si spojení vo viacvláknovom prostredí Koniec Koniec

enum

enum Objektovo orientované programovanie (enumeračné typy) 8. prednáška (3. časť) Vladislav Novák FEI STU v Bratislave 4.11.2014 (úprava 10.11. na str. 1, 3, 5) Enumeračné typy (Vymenované typy) Enumeračný

Podrobnejšie

PowerPoint Presentation

PowerPoint Presentation 3. Biznis logika a používateľské rozhrania 30. 09. 2013 ÚINF/PAZ1c (Róbert Novotný) Plán na dnes 1. generátor náhodného citátu 1. o biznis logike 2. cesta k trojvrstvovým aplikáciám 2. ďalšie okná do aplikácie:

Podrobnejšie

Databázy (1) - Prednáška 04

Databázy (1) - Prednáška 04 Databázy (1) Prednáška 04 Alexander Šimko simko@fmph.uniba.sk Contents I Množinové operácie UPSERT Množinové operácie Section 1 Množinové operácie Množinové operácie Množinové operácie Motivácia Chceme

Podrobnejšie

História

História Fakulta riadenia a informatiky ŽU Množiny Pojmy zavedené v 8. prednáške N-rozmerné polia Dvojrozmerné polia matica definícia typ[][] premenna inicializácia new typ[pocetriadkov][pocetstlpcov] práca s prvkami

Podrobnejšie

DediĊnosť

DediĊnosť Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Dedičnosť v jazyku C# Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond OOP rekapitulácia Trieda je základná jednotka objektového programovania

Podrobnejšie

Databázy (1) - Prednáška 03

Databázy (1) - Prednáška 03 Databázy (1) Prednáška 03 Alexander Šimko simko@fmph.uniba.sk Contents I JOIN a UPDATE, DELETE a INSERT Section 1 INNER JOIN INNER JOIN motivácia films id name year price 1 Léon: The Professional 1994

Podrobnejšie

PowerPoint Presentation

PowerPoint Presentation @ λ UINF/PAZ1c epizóda 8 framework vs. knižnica Knižnica vs. Framework Knižnica množina tried a ich metód, ktoré vytvoríme/zavoláme a oni pre nás niečo spravia Framework program, ktorému podhodíme

Podrobnejšie

midterm2014_1

midterm2014_1 Midterm 2014 Meno a priezvisko: obsahuje 5 príkladov, spolu 31>25 bodov skupina: 1) [8 bodov] Zistite, čo počíta nasledujúca funkcia foo pre n>=0. Hint: foo(1000) = 1. static long foo(long n) { return

Podrobnejšie

Funkcionálne programovanie Cvičenie 9 Funkcionálne programovanie v Jave Sergej Chodarev 22. november 2017 Technická Univerzita v Košiciach

Funkcionálne programovanie Cvičenie 9 Funkcionálne programovanie v Jave Sergej Chodarev 22. november 2017 Technická Univerzita v Košiciach Funkcionálne programovanie Cvičenie 9 Funkcionálne programovanie v Jave Sergej Chodarev 22. november 2017 Technická Univerzita v Košiciach Funkcie vyššieho rádu Ako v Jave implementovať funkciu, ktorá

Podrobnejšie

Princípy tvorby softvéru Programovacie paradigmy

Princípy tvorby softvéru   Programovacie paradigmy Princípy tvorby softvéru lukotka@dcs.fmph.uniba.sk www.dcs.fmph.uniba.sk/~lukotka M-255 PTS - ƒo to je programovacia paradigma A programming paradigm is a style, or way, of programming. Paradigm can also

Podrobnejšie

Algoritmizácia a programovanie - Príkazy

Algoritmizácia a programovanie - Príkazy Algoritmizácia a programovanie Príkazy prof. Ing. Ján Terpák, CSc. Technická univerzita v Košiciach Fakulta baníctva, ekológie, riadenia a geotechnológíı Ústav riadenia a informatizácie výrobných procesov

Podrobnejšie

Identity Lifecycle Management

Identity Lifecycle Management 9. prednáška (13.11.2017) Budujeme triedy alebo Murovanie v OOP 1 DVDčka 2 Cieľ: pohodlná správu zbierky DVD-čiek. Vyžadovaná funkcionalita: vieme vložiť info o novom DVD odstrániť DVD (napríklad sa poškodilo

Podrobnejšie

Microsoft PowerPoint - OOP_prednaska_10.pptx

Microsoft PowerPoint - OOP_prednaska_10.pptx Creational Design Patterns Lecture #10 doc. Ing. Martin Tomášek, PhD. Department of Computers and Informatics Faculty of Electrical Engineering and Informatics Technical University of Košice 2018/2019

Podrobnejšie

Identity Lifecycle Management

Identity Lifecycle Management MPI tutoriál (21.3.2011) MPI Message Passing Interface 1 Systémy s distribuovanou pamäťou Autonómne procesory s vlastnou pamäťou prepojené komunikačnou sieťou Komunikácia realizovaná posielaním správ Procesory

Podrobnejšie

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto Tue Oct 3 22:05:51 CEST 2006 2. Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, ktoré si postupne rozoberieme: dátové typy príkazy bloky

Podrobnejšie

Prevádzka

Prevádzka Prevádzka Registrácia prevádzka/penzión - registrácia podnikateľského účtu - výber check box - prevádzka - pri podnikateľskom účte možnosť registrácie až piatich prevádzok naraz - uvedenie sprostredkovateľa

Podrobnejšie

Databázy (1) - Prednáška 10

Databázy (1) - Prednáška 10 Databázy (1) Prednáška 10 Alexander Šimko simko@fmph.uniba.sk Contents I Práca s dátumom a časom Náhodné čísla Generovanie dát Práca s dátumom a časom Section 1 Práca s dátumom a časom Práca s dátumom

Podrobnejšie

STRUČNÝ NÁVOD KU IP-COACHU

STRUČNÝ NÁVOD KU IP-COACHU STRUČNÝ NÁVOD KU COACHU 5 Otvorenie programu a voľba úlohy na meranie Otvorenie programu Program IP- COACH na meranie otvoríme kliknutím na ikonu na obrazovke: Obr.1 Voľba úlohy na meranie Po kliknutí

Podrobnejšie

7/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min

7/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min 19/1/2017 Úvod do databáz, skúškový test, max 60 bodov 1. Uvažujte databázu bez duplikátov a null hodnôt: lubipijan, Alkohol, navstivilidn, Pijan, Krcma, vypilidn, Alkohol, Mnozstvo. Platí: Idn Pijan,

Podrobnejšie

PowerPoint Presentation

PowerPoint Presentation KNOW WHERE IT IS Riešenie na evidenciu a inventarizáciu hmotného a nehmotného majetku Facility Management Days 2019 Hotel TATRA 04.06.2019 Ing. Miroslav Blažovský Sales Manager Obsah O spoločnosti Problémy/Riešenie

Podrobnejšie

Privátna zóna pre prevádzku Obsah Privátna zóna pre prevádzku 1 Obsah 1 Webová stránka 2 Úvodná stránka 2 Registrácia prevádzka/penzión

Privátna zóna pre prevádzku Obsah Privátna zóna pre prevádzku 1 Obsah 1 Webová stránka   2 Úvodná stránka 2 Registrácia prevádzka/penzión Privátna zóna pre prevádzku Obsah Privátna zóna pre prevádzku 1 Obsah 1 Webová stránka www.rekrepo.sk 2 Úvodná stránka 2 Registrácia prevádzka/penzión 3 Prihlásenie prevádzka/penzión 4 Prehľad 5 Nová platba

Podrobnejšie

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II     Obsah 1. Export údajov ZBGIS do CAD formá GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, 827 45 Bratislava II www.gku.sk, www.geoportal.sk Obsah 1. Export údajov ZBGIS do CAD formátu (DGN, DXF) pomocou Konverznej služby... 2 Konverzia

Podrobnejšie

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Praktické programovanie assemblerových funkcií Autor:

Podrobnejšie

Objektovo orientované programovanie

Objektovo orientované programovanie Objektovo orientované programovanie (Inštalácia prostredia a vytvorenie jednoduchého programu) Vladislav Novák FEI STU v Bratislave 23.9.2014 Obsah Úvod... 1 Java (Java Development Kit)... 1 Inštalácia

Podrobnejšie

Elmasri, Fundamentals of DBSs

Elmasri, Fundamentals of DBSs A) DÁTOVÉ MODELY, SCHÉMY A INŠTANCIE B) Vytvorenie databáz, tabuliek a integrita dát - 2 C) Návrh relačných databáz a ER diagramy D) Normálne formy A) DÁTOVÉ MODELY, SCHÉMY A INŠTANCIE 1) Dátové modely

Podrobnejšie

CENTRÁLNY DEPOZITÁR CENNÝCH PAPIEROV SR, a.s. ROČNÁ ŠTATISTIKA Annual Statistics Rok 2012 / Year 2012

CENTRÁLNY DEPOZITÁR CENNÝCH PAPIEROV SR, a.s. ROČNÁ ŠTATISTIKA Annual Statistics Rok 2012 / Year 2012 CENTRÁLNY DEPOZITÁR CENNÝCH PAPIEROV SR, a.s. ROČNÁ ŠTATISTIKA Annual Statistics Rok / Year OBJEM A POČET PREVODOV SPOLU Value and Number of Transfers Total POČET PREVÁDZKOVÝCH DNÍ/Number of Days of Operation

Podrobnejšie

User:Andrej Sedlacek

User:Andrej Sedlacek User:Andrej Sedlacek Zadanie Zadaním pre tento projekt je vytvoriť nástroj pre fazetové vyhľadávanie v rámci media monitoring SAV, ktoré bude obsahovať fazety podľa výskytov daných ľudí v e-mailoch a podľa

Podrobnejšie

Identity Lifecycle Management

Identity Lifecycle Management 13. prednáška (17.12.2018) Vlastné výnimky, static, JavaDoc, alebo Koniec PAZ1a 1 Výnimka Exception in thread "main" java.lang.nullpointerexception at Vynimkarka.kladnyPriemer(Vynimkarka.java:9) at Spustac.main(Spustac.java:10)

Podrobnejšie

iot business hub whitepaper isdd_em_New.pdf

iot  business hub whitepaper isdd_em_New.pdf IoT Business Hub I.S.D.D. plus, s.r.o. Pažítková 5 821 01 Bratislava 27 Slovenská republika 1 IoT Business Hub Univerzálna platforma, pre vaše dáta z akýchkoľvek IoT zariadení prostredníctvom IoT siete

Podrobnejšie

Výnimky

Výnimky Objektovo orientované programovanie (výnimky) 7. prednáška Vladislav Novák FEI STU v Bratislave 28.10.2014 (oprava 4.11 na str. 9) Obsah Výnimky (exceptions)... 1 Zachytenie a spracovanie výnimiek... 2

Podrobnejšie

Identity Lifecycle Management

Identity Lifecycle Management 4. prednáška (7.3.2016) Stromy alebo rodostromy a tajomstvá TreeSet-u 1 Hierarchie okolo nás Stromové zobrazenie adresárovej štruktúry Hierarchický diagram 2 Strom potomkov Janko Janko má deti Jožka, Máriu

Podrobnejšie

SK_mTransfer_Okamzita_notifikacia_ indd

SK_mTransfer_Okamzita_notifikacia_ indd mtransfer Okamžitá notifikácia o mtransfere Dokumentácia pre externého partnera vložka číslo: 1503/B, IČO: 36 819 638, DIČ: 2022429156, IČ DPH: SK 2022429156 tel. č.: +421 2 68 23 03 01, fax: +421 2 68

Podrobnejšie

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Internet vecí v našich ž

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, , Bratislava 4 Internet vecí v našich ž Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, 842 16, Bratislava 4 Internet vecí v našich životoch [IoT] Používateľská príručka - Android Tím:

Podrobnejšie

Balíčkovanie FreeSWITCH-u pre Debian Autor: Zdenko Holeša, InžProjekt 1, KIS FRI ŽU Predkompilované balíčky Predkompilované balíčky existujú pre Debia

Balíčkovanie FreeSWITCH-u pre Debian Autor: Zdenko Holeša, InžProjekt 1, KIS FRI ŽU Predkompilované balíčky Predkompilované balíčky existujú pre Debia Balíčkovanie FreeSWITCH-u pre Debian Autor: Zdenko Holeša, InžProjekt 1, KIS FRI ŽU Predkompilované balíčky Predkompilované balíčky existujú pre Debian Wheezy (32bit aj 64bit). Tento systém balíčkovania

Podrobnejšie

Novinky v OpcDbGateway 5.0

Novinky v OpcDbGateway  5.0 Čo je OpcDbGateway Softvér pre integráciu aplikácii SAE Automation, s.r.o., Nová Dubnica Interoperabilita pre Vaše zariadenia a softvérové aplikácie Obsah Úvod Na čo sa využíva Funkcionalita Integrácia

Podrobnejšie

s sol

s sol 15/1/2009 Úvod do databáz, skúškový test, max 25 bodov, 90 min 0. Súhlasím so zverejnením výsledku môjho testu vo forme [Meno, Výsledok] na webstránke prednášky. ÁNO (1), NIE (0). ÁNO 1. Daná je databáza:

Podrobnejšie

Microsoft Word - Priloha_1.docx

Microsoft Word - Priloha_1.docx Obsah 1 Úvod... 1 2 Hlavné menu verejnej časti ITMS2014+... 1 3 Zoznam ŽoNFP na verejnej časti ITMS2014+... 2 3.1 Vyhľadávanie ŽoNFP... 2 3.2 Horná lišta zoznamu ŽoNFP... 2 3.3 Stĺpce zoznamu ŽoNFP...

Podrobnejšie

gis5 prifuk

gis5 prifuk Úrovne implementácie vektorového GIS. Eva Mičietová Univerzita Komenského v Bratislave Prírodovedecká fakulta Katedra kartografie, geoinformatiky a diaľkového prieskumu zeme Email: miciet@fns.uniba.sk

Podrobnejšie

Finančné riaditeľstvo Slovenskej republiky 9/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor/Technik Inf

Finančné riaditeľstvo Slovenskej republiky 9/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor/Technik Inf Finančné riaditeľstvo Slovenskej republiky 9/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor/Technik Informácia je určená pre podnikateľov, ktorí požiadali

Podrobnejšie

Relačné a logické bázy dát

Relačné a logické bázy dát Unifikácia riešenie rovníc v algebre termov Ján Šturc Zima, 2010 Termy a substitúcie Definícia (term): 1. Nech t 0,..., t n -1 sú termy a f je n-árny funkčný symbol, potom aj f(t 0,..., t n -1 ) je term.

Podrobnejšie

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Informačný systém pre materské školy Bakalárska práca 2019 Monika Vlčková

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Informačný systém pre materské školy Bakalárska práca 2019 Monika Vlčková UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY Informačný systém pre materské školy Bakalárska práca 2019 Monika Vlčková UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY,

Podrobnejšie

Katalóg služieb OTPdirekt-retail

Katalóg služieb OTPdirekt-retail ELEKTRONICKÉ BANKOVNÍCTVO Katalóg služieb systému OTPdirekt (individuálni klienti) OTP Banka Slovensko, a.s. poskytuje služby elektronického bankovníctva prostredníctvom systému OTPdirekt v moduloch: Call

Podrobnejšie

Template for PowerPoint

Template for PowerPoint 1 Stručne o spoločnosti 2 Asseco Solutions Spojenie troch lokálnych technologických lídrov v ERP Približne 720 zamestnancov v 5 krajinách Kľúčové ERP riešenia: APplus HELIOS SPIN Cloudové ERP riešenie:

Podrobnejšie

Finančné riaditeľstvo Slovenskej republiky 10/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor Informácia

Finančné riaditeľstvo Slovenskej republiky 10/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor Informácia Finančné riaditeľstvo Slovenskej republiky 10/ORP/2019/IM Stiahnutie identifikačných a autentifikačných údajov pri ORP - rola Administrátor Informácia je určená pre podnikateľov, ktorí požiadali o pridelenie

Podrobnejšie

SK_mTransfer_Technicka_dokumentacia_ indd

SK_mTransfer_Technicka_dokumentacia_ indd mtransfer Technická dokumentácia Pre externých partnerov vložka číslo: 1503/B, IČO: 36 819 638, DIČ: 2022429156, IČ DPH: SK 2022429156 tel. č.: +421 2 68 23 03 01, fax: +421 2 68 23 03 00, www., e-mail:

Podrobnejšie

midterm2019

midterm2019 Midterm 2019 Meno a priezvisko: obsahuje 5 príkladov, spolu 6+5+5+5+6 = 27 bodov 1) [6 bodov] Prvočíselný Prvočísel je nekonečne veľa, elegantný Euklidov dôkaz sporom hovorí: Ak by ich bolo konečne veľa,

Podrobnejšie

Úrad pre dohľad nad zdravotnou starostlivosťou Žellova 2, Bratislava Dátové rozhranie pre externý subjekt FR SR Strana 1 z 11 Dátové rozhranie

Úrad pre dohľad nad zdravotnou starostlivosťou Žellova 2, Bratislava Dátové rozhranie pre externý subjekt FR SR Strana 1 z 11 Dátové rozhranie Strana 1 z 11 Dátové rozhranie - dávka 568 Popis dávky: Oznámenie FR SR o a) vymeriavacích základoch fyzických osôb podľa 13 a údajov pre vykonanie ročného zúčtovania poistného podľa 19 zákona č. 580/2004

Podrobnejšie

Snímka 1

Snímka 1 Mgr. Ing. Roman Horváth, PhD. Katedra matematiky a informatiky Pedagogická fakulta Trnavská univerzita v Trnave roman.horvath@truni.sk Algoritmus a vlastnosti algoritmov Algoritmus konečná postupnosť krokov

Podrobnejšie

IAB budicek - Branding Landscape & Research options_FINAL_Gregor.pptx

IAB budicek - Branding Landscape & Research options_FINAL_Gregor.pptx NES SA BRAND UDUJE V DIGITÁLI Štrukturálna štúdia pre AIMmonitor FOCUS 3,800,000 Internetová populácia SR 12+ 3,757,883 3,743,804 4 mln /2019 3,700,000 3,600,000 3,599,551 Y/Y +3-4% 3,500,000 3,400,000

Podrobnejšie

NÁVRH UČEBNÝCH OSNOV PRE 1

NÁVRH  UČEBNÝCH  OSNOV  PRE  1 PROGRAMOVANIE UČEBNÉ OSNOVY do ŠkVP Charakteristika voliteľného učebného predmetu Programovanie Programovanie rozširuje a prehlbuje žiacke vedomosti z predchádzajúcich povinného predmetu Informatika. Kompetencie

Podrobnejšie

Stravné - přecenění

Stravné - přecenění Vytvorenie a nastavenie novej kategórie pre Obedy zadarmo Platí pre verziu programu Stravné 4.61 POZOR! Postup pre jedálne základných škôl, ktoré majú povinnosť sledovať dotácie od 1. 9. 2019 je uvedený

Podrobnejšie

CviĊenie z PTS

CviĊenie z PTS Cvičenie z PTS 13.4.2010 Zrozumiteľnosť kódu Atribúty kvality softvéru Externé atribúty kvality: spoľahlivosť flexibilnosť znovupoužiteľnosť kompatibilnosť efektívnosť portabilnosť verifikovateľnosť jednoduchosť

Podrobnejšie

ECDL Syllabus V50 SK-V01

ECDL Syllabus V50  SK-V01 SYLLABUS ECDL Modul Computing, M16 (Základy informatického myslenia a programovania) Sylabus, verzia 1.0 ECDL Module Computing Syllabus Version 1.0 Účel Tento dokument uvádza v plnom znení sylabus pre

Podrobnejšie

Loan Processing System pre VÚB banku Ako sme jednej z najväčších bánk na Slovensku zvýšili kvalitu a rýchlosť obsluhy firemných klientov nasadením sys

Loan Processing System pre VÚB banku Ako sme jednej z najväčších bánk na Slovensku zvýšili kvalitu a rýchlosť obsluhy firemných klientov nasadením sys Loan Processing System pre VÚB banku Ako sme jednej z najväčších bánk na Slovensku zvýšili kvalitu a rýchlosť obsluhy firemných klientov nasadením systému pre riadenie predaja úverových produktov Loan

Podrobnejšie

Matej Kendera - PDF, word, lucene, java

Matej Kendera - PDF, word, lucene, java Matej Kendera - PDF, word, lucene, java Indexovanie PDF a Word dokumentov na disku - Konvertovanie dokumentov do systému - Spracovanie dokumentov - Využitie Lucene, na indexáciu a vyhľadanie podobných

Podrobnejšie

Finančné riaditeľstvo Slovenskej republiky 12/ORP/2019/IM Postup pre overenie pravosti pokladničného dokladu Informácia je určená pre subjekty (zákazn

Finančné riaditeľstvo Slovenskej republiky 12/ORP/2019/IM Postup pre overenie pravosti pokladničného dokladu Informácia je určená pre subjekty (zákazn Finančné riaditeľstvo Slovenskej republiky 12/ORP/2019/IM Postup pre overenie pravosti pokladničného dokladu Informácia je určená pre subjekty (zákazníkov), ktorým bol vyhotovený pokladničný doklad z pokladnice

Podrobnejšie

fm 2012 a predajňa.doc

fm 2012 a predajňa.doc WISP Predajňa a FM od 01.01.2012 Od verzie programu 165.2928 a DB 165.1079 sú v programe doplnené a doladené úpravy pre užívateľov WISPu, modulu Predajňa. Potrebné nastavenia modulu Predajňa a Fiškálneho

Podrobnejšie

Princípy tvorby softvéru Modelovanie domény

Princípy tvorby softvéru   Modelovanie domény Princípy tvorby softvéru Robert Luko ka lukotka@dcs.fmph.uniba.sk M-255 Princípy tvorby softvéru ƒo je to doménový model? Doménový model je konceptuálny model (reprezentuje koncepty (entity) a vz ahy medzi

Podrobnejšie

Snímka 1

Snímka 1 Počítačová sieť Komunikácia v sieti Vypracovala: Ing. Eva Gabonayová Predmet: Informatika Vzdelávacia oblasť: Matematika a práca s informáciami Úloha : Diskutujme o tom, čo si predstavujete, keď sa povie

Podrobnejšie

INTERNET BANKING Ako zrealizovať hromadný prevod VŠETKO, ČO JE MOŽNÉ with.vub.sk, Bank of

INTERNET BANKING Ako zrealizovať hromadný prevod VŠETKO, ČO JE MOŽNÉ   with.vub.sk, Bank of INTERNET BANKING Ako zrealizovať hromadný prevod VŠETKO, ČO JE MOŽNÉ www.vub.sk, with.vub.sk, 0850 123 000 Bank of VYNOVENÝ INTERNET BANKING Nový moderný dizajn Dostupnosť zo všetkých zariadení Prehľad

Podrobnejšie

Microsoft Word - Manažment_tagov_tim24_tema12_2017.docx

Microsoft Word - Manažment_tagov_tim24_tema12_2017.docx Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Ilkovičova 2, 842 16 Bratislava 4 Manažment tagov Tím 24 Študijný program: Inteligentné softvérové systémy, Internetové

Podrobnejšie

PowerPoint Presentation

PowerPoint Presentation Využitie web služieb na vývoj online aplikácií Katarína Žáková Slovenská technická univerzita v Bratislave Fakulta elektrotechniky a informatiky Ústav automobilovej mechatroniky katarina.zakova@stuba.sk

Podrobnejšie

SAEAUT SNMP OPC Server

SAEAUT SNMP OPC Server SAEAUT SNMP OPC Server Monitoring a riadenie s využitím SNMP protokolu a prepojenie s inými systémami cez OPC. SAE Automation, s.r.o., Nová Dubnica Interoperabilita pre Vaše zariadenia a softvérové aplikácie

Podrobnejšie

Architektúra a návrh Zdôvodnenie navrhnutej architektúry Systém si architektonicky môžeme rozdeliť na viacero vrstiev. Najpodstatnejšie je oddelenie z

Architektúra a návrh Zdôvodnenie navrhnutej architektúry Systém si architektonicky môžeme rozdeliť na viacero vrstiev. Najpodstatnejšie je oddelenie z Architektúra a návrh Zdôvodnenie navrhnutej architektúry Systém si architektonicky môžeme rozdeliť na viacero vrstiev. Najpodstatnejšie je oddelenie zobrazovacej logiky od celého systému, aby bolo možné

Podrobnejšie

Informačný systém pre externú časť a písomnú formu internej časti maturitnej skúšky Informačný systém pre EČ a PFIČ maturitnej skúšky Užívateľská prír

Informačný systém pre externú časť a písomnú formu internej časti maturitnej skúšky Informačný systém pre EČ a PFIČ maturitnej skúšky Užívateľská prír Informačný systém pre EČ a PFIČ maturitnej skúšky Užívateľská príručka pre opravný termín EČ a PFIČ Máj 2019 Obsah 1. ZÁKLADNÉ POKYNY... 3 2. ÚDAJE O ŠKOLE... 4 2.1 KONTROLA A ZMENA ÚDAJOV... 4 2.2 ZMENA

Podrobnejšie

FAQ

FAQ Import skladových kariet Potrebujete si preniesť do programu OMEGA zoznam skladových kariet, prípadne nový cenník z Excelu? Vyžite funkciu importu skladových kariet: V menu Sklad Skladové karty potvrdíme

Podrobnejšie

NSK Karta PDF

NSK Karta PDF Názov kvalifikácie: Projektový manažér pre informačné technológie Kód kvalifikácie U2421003-01391 Úroveň SKKR 7 Sektorová rada IT a telekomunikácie SK ISCO-08 2421003 / Projektový špecialista (projektový

Podrobnejšie

Microsoft Word - prirucka_katedry_nova

Microsoft Word - prirucka_katedry_nova Práca v systéme BUXUS Príručka pre katedrových redaktorov Michal Minarik michal.minarik@stuba.sk 2 Obsah Prihlásenie do systému BUXUS... 3 Prihlasovacie údaje... 3 Prihlasovacia obrazovka... 3 Úvodné menu...

Podrobnejšie

Ponuka Štart

Ponuka Štart Mária Kostková Obsah Na čo slúži Umiestnenie ponuky Štart Základné časti ponuky Štart Prístup k priečinkom nastaveniam k programom Pri spustení Príslušenstvo Ovládací panel Na čo slúži vstup k programom,

Podrobnejšie

Novinky programu MSklad

Novinky programu MSklad Novinky v programe MSklad 1.51 Poznámka v receptúre V receptúre je možné po novom pripísať ku každej položke poznámku, ktorá sa potom zobrazí pri tlači delenej žiadanky a voliteľne tiež pri tlači komplexnej

Podrobnejšie

Slide 1

Slide 1 Elektronizácia služieb bratislavskej samosprávy Operačný program Informatizácia spoločnosti a Operačný program Bratislavský kraj OPIS a OPBK sú komplementárnymi programami v zmysle vybudovania egovernmentu

Podrobnejšie

5/1/2012 Úvod do databáz, skúškový test, max 25 bodov, 90 min 1. Daná je databáza: capuje(krcma, Alkohol, Cena), lubi(pijan, Alkohol) navstivil(idn, P

5/1/2012 Úvod do databáz, skúškový test, max 25 bodov, 90 min 1. Daná je databáza: capuje(krcma, Alkohol, Cena), lubi(pijan, Alkohol) navstivil(idn, P 5/1/2012 Úvod do databáz, skúškový test, max 25 bodov, 90 min 1. Daná je databáza: capuje(krcma, Alkohol, Cena), lubi(pijan, Alkohol) navstivil(idn, Pijan, Krcma), vypil(idn, Alkohol, Mnozstvo). Platí:

Podrobnejšie

SK MATEMATICKA OLYMPIADA 2010/ ročník MO Riešenia úloh domáceho kola kategórie Z4 1. Doplň do prázdnych políčok čísla od 1 do 7 každé raz tak,

SK MATEMATICKA OLYMPIADA 2010/ ročník MO Riešenia úloh domáceho kola kategórie Z4 1. Doplň do prázdnych políčok čísla od 1 do 7 každé raz tak, SK MATEMATICKA OLYMPIADA 2010/2011 60. ročník MO Riešenia úloh domáceho kola kategórie Z4 1. Doplň do prázdnych políčok čísla od 1 do 7 každé raz tak, aby matematické operácie boli vypočítané správne.

Podrobnejšie

2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové 1. Prvky jazyka MySQL 2. Typy

2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové 1. Prvky jazyka MySQL   2. Typy 2. Týždeň MySQL - dátové typy a funkcie num. a reťazcové 1. Prvky jazyka MySQL http://dev.mysql.com/doc/refman/5.7/en/language-structure.html 2. Typy a pretypovanie http://dev.mysql.com/doc/refman/5.7/en/data-types.html

Podrobnejšie

Aktion.NEXT Novinky vo verzii 1.9

Aktion.NEXT Novinky vo verzii 1.9 Aktion.NEXT Novinky vo verzii 1.9 Windows aplikácia Nové moduly a funkcionalita Prídavné moduly rozširujú systém Aktion.NEXT o dodatočné agendy a funkcie. Môže sa jednať o úplne novú funkcionalitu, ktorá

Podrobnejšie

(Microsoft Word - Registr\341cia \372\350tu Hik-Connect.docx)

(Microsoft Word - Registr\341cia \372\350tu Hik-Connect.docx) Ako registrovať účet Hik-Connect Tento dokument popisuje postup registrácie účtu Hik-Connect cez mobilnú aplikáciu Hik-Connect a webový portál www.hik-connect.com. Poznámka: Ak chcete použiť pre registráciu

Podrobnejšie

IP telefónia. Návrh AsÚ SAV

IP telefónia. Návrh AsÚ SAV Richard Komžík 20060228 IP telefónia Realizácia na AsÚ SAV DÔVODY, CIELE zlacnenie poplatkov za telekomunikčné služby zavedenie perspektívnej technológie nutná výmena existujúcej telefónnej ústredne nové

Podrobnejšie

Algoritmizácia a programovanie - Štruktúrované údajové typy

Algoritmizácia a programovanie - Štruktúrované údajové typy Algoritmizácia a programovanie Štruktúrované údajové typy prof. Ing. Ján Terpák, CSc. Technická univerzita v Košiciach Fakulta baníctva, ekológie, riadenia a geotechnológíı Ústav riadenia a informatizácie

Podrobnejšie

Microsoft Word - mnohouholnik.doc

Microsoft Word - mnohouholnik.doc Výpočet obsahu mnohouholníka Mnohouholník je daný súradnicami svojich vrcholov: A1[x1, y1], A2[x2, y2],..., An[xn, yn]. Aby sme sa vyhli komplikáciám, obmedzíme sa na prípad konvexného mnohouholníka. Súradnice

Podrobnejšie

Návod na obsluhu CompactIO 1

Návod na obsluhu CompactIO 1 Návod na obsluhu CompactIO 1 Rozmery Popis panelov Zapojenie digitálnych vstupov a releolých kontaktov 2 Popis výrobku CompactIO je modul pre vzdialené ovládanie. Poskytuje vstavanú podporu pre priemyselné

Podrobnejšie

PowerPoint Presentation

PowerPoint Presentation @RoboNovotny UINF/PAZ1c epizóda 7 4/nov/15 prečo nedediť od náhodných tried? delegácia miesto dedičnosti kedy dediť a kedy nie? Dediť či nedediť? naozaj je vzťah is-a? implementujete interfejs? je rodič

Podrobnejšie

STRUČNÝ NÁVOD KU IP-COACHU

STRUČNÝ NÁVOD KU IP-COACHU STRUČNÝ NÁVOD KU COACHU 6 Otvorenie programu a voľba úlohy na meranie Otvorenie programu Program COACH na meranie otvoríme kliknutím na ikonu Autor na obrazovke, potom zvolíme Užívateľskú úroveň Pokročilý

Podrobnejšie

Stravné - přecenění

Stravné - přecenění Vytvorenie a nastavenie novej kategórie pre Obedy zadarmo pre Materskú školu Platí pre verziu programu Stravné 4.61 a 4.62 POZOR! Postup pre jedálne ZÁKLADNÝCH ŠKÔL, ktoré majú povinnosť sledovať dotácie

Podrobnejšie

Microsoft Word - 11_Distribuované spracovanie dát nad MapReduce architektúrou _Hadoop a Hive_

Microsoft Word - 11_Distribuované spracovanie dát nad MapReduce architektúrou _Hadoop a Hive_ Distribuované spracovanie dát nad MapReduce architektúrou (Hadoop a Hive) Martin Šeleng Ústav Informatiky, Slovenská Akadémia Vied, Dúbravská cesta 9, 845 07 Bratislava, Slovakia martin.seleng@savba.sk

Podrobnejšie

Microsoft PowerPoint - SLIDES_02DTD.ppt

Microsoft PowerPoint - SLIDES_02DTD.ppt Validácia dokumentov Document Type Definition základné pojmy základné bloky dokumentu z pohadu deklarácia elementov deklarácia atribútov Validácia overenie platnosti dokumentu voi (nejako zapísaným) pravidlám

Podrobnejšie

eKasa

eKasa Používateľská príručka Overenie evidencie dokladu v systéme e-kasa web Systém e-kasa modul OPD web pre: : Finančná správa Verzia: 1.6 Dátum: 27.03.2019 OBSAH Základné informácie o spoločnosti... Chyba!

Podrobnejšie

Microsoft Word Nextra_ADSLink.doc

Microsoft Word Nextra_ADSLink.doc Nextra ADSLink Nové služby Nextra ADSLink umožňujú zákazníkom pripojiť sa na internet prostredníctvom technológie ADSL. Technológia ADSL efektívne využíva existujúce telefónne siete, bez dramatických zásahov

Podrobnejšie

FAQ

FAQ Kontrola koeficientovanej DPH Platiteľovi DPH môžu pri odpočítavaní DPH ( 49) nastať tieto tri možnosti: nemáme nárok na odpočítanie DPH z nadobudnutých tovarov a služieb plnenia oslobodené od dane účtujeme

Podrobnejšie

ADBEE_System_pre_pozicovne_Datasheet copy

ADBEE_System_pre_pozicovne_Datasheet copy ZÁKLDNÉ VLSTNOSTI Plná responzívnosť rozhrania pre pohodlné spravovanie na všetkých zariadeniach (počítač, tablet, smartfón), bez ohľadu na typ zariadenia či operačný systém Systém je vyvíjaný ako webová

Podrobnejšie

čiastka 22/2019 Vestník NBS rozhodnutie NBS č. 14/ ÚPLNÉ ZNENIE rozhodnutia Národnej banky Slovenska č. 3/2008 z 25. novembra 2008 o podmien

čiastka 22/2019 Vestník NBS rozhodnutie NBS č. 14/ ÚPLNÉ ZNENIE rozhodnutia Národnej banky Slovenska č. 3/2008 z 25. novembra 2008 o podmien čiastka 22/2019 Vestník NBS rozhodnutie NBS č. 14/2019 31 14 ÚPLNÉ ZNENIE rozhodnutia Národnej banky Slovenska č. 3/2008 z 25. novembra 2008 o podmienkach na vedenie účtov v eurách pre zahraničné banky,

Podrobnejšie

Untitled

Untitled Stav bezpečnosti v online svete 37 000 hacknutých webov denne Ktorýkoľvek web je terčom útoku v priemere každých 120 dní 86 % pravdepodobnosť, že web obsahuje kritickú zraniteľnosť 25 % útokov spôsobili

Podrobnejšie

CitiManager - Migration Quick Reference Guide for Cardholders_Slovak_fin

CitiManager - Migration Quick Reference Guide for Cardholders_Slovak_fin Táto Rýchla referenčná príručka vám pomôže v týchto oblastiach: 1. Ako sa zaregistrovať na portáli CitiManager? a) Pre existujúcich držiteľov kariet s online výpismi b) Pre držiteľov kariet s papierovými

Podrobnejšie

untitled

untitled Smart Connect sk Návod na obsluhu 2 Schweiz / EU 25 Monate Garantiebedingungen 25 mois conditions de garantie 25 months warranty conditions sk Návod na obsluhu JURA Smart Connect... 4 International guarantee

Podrobnejšie

INTERNET BANKING Práca s tokenom VŠETKO, ČO JE MOŽNÉ with.vub.sk, Bank of

INTERNET BANKING Práca s tokenom VŠETKO, ČO JE MOŽNÉ   with.vub.sk, Bank of INTERNET BANKING Práca s tokenom VŠETKO, ČO JE MOŽNÉ www.vub.sk, with.vub.sk, 0850 123 000 Bank of VYNOVENÝ INTERNET BANKING Nový, moderný dizajn Dostupnosť zo všetkých zariadení Prehľad o svojich financiách

Podrobnejšie

Konkurentné programovanie

Konkurentné programovanie KONKURENTNÉ PROGRAMOVANIE 4. cvičenie: Konkurentné kolekcie Stav objektu/triedy Stav objektu je uložený v jeho inštančných premenných Stav triedy je uložený v jej statických premenných Stav objektu môže

Podrobnejšie

Blood Glucose Monitoring System Copyright Ascensia Diabetes Care Holdings AG. All rights reserved. diabetes.ascensia.com

Blood Glucose Monitoring System Copyright Ascensia Diabetes Care Holdings AG. All rights reserved. diabetes.ascensia.com Vytváranie plánov pripomienok meraní s CONTOUR DIABETES aplikáciou Zmeny v liečbe, diéte alebo cvičení konzultujte vždy vopred s Vašim lekárom. Plán pripomienok meraní Vám pomáha optimalizovať monitoring

Podrobnejšie

Georeceive a Geoshopping

Georeceive a Geoshopping Georeceive a Geoshopping Nové elektronické služby digitálnej mapy Ing. Ján Nývlt Magistrát Hl. m. SR Bratislavy Motivácia Všeobecne záväzné nariadenie Hl. m. SR Bratislavy č. 1/1995 o digitálnej technickej

Podrobnejšie