JDBC
JDBC (Java DataBase Connectivity) je api špecifikácia pre pripojenie JAVA programov k populárnym databázam. API umožňuje písanie databázových dopytov v SQL jazyku, ich odosielanie na databázový server a vrátenie výsledkov.

Živoný ciklus JDBC programu:
  1. Vytvor inštanicu "Connection" objektu pre spojenie s databázou
  2. Vytvor inštanicu "Statement" objektu pod objektom "Connection"
  3. Vykonaj SQL dopyt pomocou oboch objektov
  4. Spracuj výsledok dopytu
  5. Uzatvor spojenie - uvoľnenie zdrojov


Postup práce:
  1. Jednoduché JDBC
  2. SELECT
  3. UPDATE
  4. INSERT
  5. DELETE
Úloha na rozohriatie:
Upravte metódu update tak, aby vracala (vypísala) počet ovplyvnených riadkov.
Hibernate

Hibernate ORM

Idiomatic persistence for Java and relational databases.

Hibernate framowork poskytuje mapovanie z Java tried na databázové tabuľky a späť(Java dátových typov na SQL dátové typy) a tiež umožňuje vykonávanie dopytov a spracovávanie výsledkov.


Klady a zápory JDBC

Klady
  • Čisté a jednoduché spracovanie SQL
  • Dobý výkon pri veľkých dátach
  • Veľmi dobré pre menšie aplikácie
  • Jednoduché na používanie
Zápory
  • Zložité pri použití vo veľkých projektoch
  • Veľká programátorská záťaž
  • Ťažké implementovanie MVC konceptu
  • Dopyty sú závyslé na použitej databáze

Klady Hibernate

Klady
  • Stará sa o mapovanie Java tried na databázové tabuľky pomocou XML, bez potreby písať čo i len riadok kódu
  • Obsahuje jednoduché API na ukladanie a čítanie objektov do a z databázy
  • Pri zmene v databáze nie je potrebné prepisovať zdrojový kód, stačí pozmeniť XML
  • Minimalizuje prístup do databázy vďaka "smart fetching strategies"

Postup práce:
  1. Inštalácia Hibernate
  2. Konfigurácia Hibernate
  3. Entita Book
  4. Hibernate mapper pre entitu Book
  5. Jednoduchá aplikácia
  6. Anotovaná entita Book2
  7. Mapovanie Collections?
Inštalácia Hibernate
                    <!-- MySQL database driver -->
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.9</version>
                    </dependency>

                    <!-- Hibernate framework -->
                    <dependency>
                        <groupId>hibernate</groupId>
                        <artifactId>hibernate3</artifactId>
                        <version>5.2.4.Final</version>
                    </dependency>


                    <!-- Hibernate library dependecy start -->
                    <dependency>
                        <groupId>dom4j</groupId>
                        <artifactId>dom4j</artifactId>
                        <version>1.6.1</version>
                    </dependency>

                    <dependency>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                        <version>1.1.1</version>
                    </dependency>

                    <dependency>
                        <groupId>commons-collections</groupId>
                        <artifactId>commons-collections</artifactId>
                        <version>3.2.1</version>
                    </dependency>

                    <dependency>
                        <groupId>cglib</groupId>
                        <artifactId>cglib</artifactId>
                        <version>2.2</version>
                    </dependency>
                    <!-- Hibernate library dependecy end -->

                    <dependency>
                        <groupId>javax.transaction</groupId>
                        <artifactId>jta</artifactId>
                        <version>1.1</version>
                    </dependency>
                
Konfigurácia Hibernate
                    <?xml version="1.0" encoding="utf-8"?>
                    <!DOCTYPE hibernate-configuration SYSTEM
                    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

                    <hibernate-configuration>
                        <session-factory>

                        </session-factory>
                    </hibernate-configuration>
                
Hibernate mapper pre entitu Book
                    <?xml version="1.0" encoding="utf-8"?>
                    <!DOCTYPE hibernate-mapping PUBLIC
                     "-//Hibernate/Hibernate Mapping DTD//EN"
                     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

                    <hibernate-mapping>

                    </hibernate-mapping>
                
PHP

PHP je server-side-scripting jazyk, ktorý je schopný pracovať s databázami či spravoavť sessions.
Je v ňom integrovaná komunikácia s prakticky všetkými bežne používanými databázovými systémami vrátane MySQL, PostgreSQL, Oracle, Sybase, Informix a Microsoft SQL Server.
Podporuje tiež väčšinu najpoužívanejších protokolov ako POP3, IMAP a LDAP.

PHP sa okrem iného používa na manipuláciu so súbormi (čítanie, zápis, vytváranie, mazanie).
Dokáže spracovávať formuláre a získané informácie uložiť do súboru/databázy, vrátiť výsledok spracovanie používateľovi či odoslať ich emailom.
Cookies.
Podporuje šifrovanie.

Hello world!
<html>

   <head>
      <title>Hello World</title>
   </head>

   <body>
      <?php echo "Hello, World!";?>
   </body>

</html>
                
'Escaping' to PHP
HTML script tags
<script language="PHP">...</script>
ASP tags
<%...%>
Short-open tags
<?...?>
Canonical PHP tags
<?php...?>
Premenné a konštanty
$int_var = 12345;
$double_var = 2.2888800;
$bool_var = TRUE; #FALSE;
$str_var = "Tried and true"
$array_var[49] = "An array element";

define("CONST50", 50);
#echo CONST50;
        
IF, SWITCH
if (condition)
   code to be executed if condition is true;
elseif (condition)
   code to be executed if condition is true;
else
   code to be executed if condition is false;
        
switch (expression){
    case label1:
        code to be executed if expression = label1;
        break;

    case label2:
        code to be executed if expression = label2;
        break;

    default:
        code to be executed
        if expression is different
        from both label1 and label2;
}
        
For, While
$a = 0;

for( $i = 0; $i<5; $i++ ) {
    $a += 10;
}
        
$i = 0;
$num = 50;

while( $i < 10) {
    $num--;
}
        
Spracovanie formulárov
Preddefinované premenné
$_GET Pole obsahujúce premenné posunuté aktuálnemu skriptu cez HTTP GET
$_POST Pole obsahujúce premenné posunuté aktuálnemu skriptu cez HTTP POST
$_FILES Pole objektov posunuté aktuálnemu skriptu cez HTTP POST
$_COOKIE Cookies
$_REQUEST Pole obsahujúce premenné $_GET, $_POST a $_COOKIE
$_SESSION Dostupné premenné danej relácie
Zdroje