Professional Documents
Culture Documents
Java I I II Test
Java I I II Test
JavaDB Sun/Oracle distribucija Apache Derby 100% Java tehnologija baze podataka otvorenog koda
(transakcijska, sigurna, jednostavna za koritenje, podrava standarde SQL, JDBC API i Java EE, i vrlo je
mala (2.5 MB).)
JavaTV - Java ME bazirana tehnologija koja prua rjeenje za razvoj Java aplikacija koje se izvravaju na
TV i drugim box ureajima.
-S pozicije razvoja i koritenja razlikuju se:
JRE Java Runtime Environment ukljuuje interpreter (JVM), biblioteke (klasa i suelja) i ostale
komponente koje su potrebne za izvravanje Java aplikacija. Potrebno instalirati na raunaru da bi se
izvravale Java aplikacije.
JDK (SDK) Java Development Kit ukljuuje razvojne alate (kompajler, debugger i dr.) i JRE.
- Java razvojno okruenjev5 i v6 uvodi: Uvodi : Generiko programiranje Proirenje petlje -
Umetanje/uzimanje primitivnih podataka - Enumeracijski podaci Varijabilni broj argumenata
Statiko ukljuivanje Metapodaci, anotacije
- Java okolina v 7.0 Uvodi znaajne novosti: koritenje znaka _ u brojanim podacima za postizanje
preglednosti, koritenje string vrijednosti u switch instrukciji, try-with-resource instrukcija hvatanje
vie tipova iznimki i ponovno bacanje iznimki s poboljanom provjerom tipa,
dodan paket java.nio.file za bolji pristup datotekama, Java Virtual Machine podrka za ne-Java
programske jezika (Groovy, JRuby, Jython, Scala i dr.)
- Program moe biti pripremljen za izvravanje unutar:
virtuelne maine JDK (Java Development Kit) aplikacija (znakovno ili grafiko suelje)
virtuelne maine preglednika applet virtuelne maine preglednika Java Web Start
- Kompajliranje Java programa provodi se: pozivanjem ugraenog kompajlera unutar razvojne okoline
(NetBeans, Eclipse,...) ili Pozivanjem kompajlera u komandnoj liniji javac nazivprograma.java
- Izvravanje Java aplikacije provodi se:
izvravanjem JDK virtuelne maine u komandnoj liniji java nazivprograma
- Izvravanje Java appleta provodi se: ukljuivanjem posebne oznake unutar HTML dokumenta
Java komentari
Postoji vie vrsta komentara:
// - jedna linija do kraja linije
/* ... */ - jedna ili vie linija
/** ... */ - jedna ili vie linija koje e sluiti kao dokumentacija nakon primjene javadoc programa
sloeni tipova podataka:
klasa konstrukt koji povezuje podatke (varijable) i ponaanje nad tim podacima (metode)
suelje definie skup metoda koje trebaju implementirati konkretne klase
paket organizacijski oblik povezivanja srodnih klasa
System.out.println("Student: " + firstName + " " + lastName + " ID No. " + indexNumber); }
public @Override void show() {
System.out.println("Professor " + firstName + " " + lastName + " teaches: " + className);
}
Java apstraktna klasa
abstract class Person {
public String firstName;
public String lastName;
public abstract void show();
}
I varijanta:
public class Student extends Person { public String indexNumber;
@Override public void show() {
System.out.println("Student: " + firstName + " " + lastName); }
}
II varijanta: abstract class Student extends Person { public String indexNumber;} public class Apsolvent
extends Student { @Override public void show() { System.out.println(" Apsolvent: " + firstName + " " +
lastName) + " " + indexNumber); } }
Java Interfejsi (Interface)
Apstraktne klase, pored apstraktnih metoda koje sadre samo potpis, mogu sadravati i klasine metode i
atribute. U jeziku Java postoji jo apstraktnija forma, koja sadri samo potpise metoda. Ova forma naziva
se interfejs (interface). Interfejs sadri uglavnom samo potpise metoda, pri emu, kada se interfejs
implementira u klasu, sve metode navedene u njemu moraju biti implementirane u klasi.
}
class Proba2 {
void pridruzi(int noviBroj)
{...}
}
class Proba3 {
void pridruzi(float noviBroj)
{...}
}
Unutar iste klase sa razliitim tipovima podataka za argumente :
class Proba {
int pridruzi(int noviBroj)
{
return noviBroj;
}
float pridruzi(float noviBroj)
{
return noviBroj;
}
}
Unutar iste klase s razliitim tipom metode i istim/razliitim tipom podatka za argumente:
class Proba {
void pridruzi(int noviBroj)
{}
int pridruzi(int noviBroj)
{
return noviBroj;
}
float pridruzi(float noviBroj)
{
return noviBroj;
}
}
boolean
byte
char
short
int
long
float
double
Java operatori Operatori
postfix
unarni
multiplicative
additive
shift
relacioni
jednakosti
bitovni
bitovni
bitovni
logiki
logiki
ternnarni
pridruivanja
8
8
16
16
32
64
32
64
false
0
x0
0
0
0
0.0F
0.0D
Redoslijed
expr++ expr-++expr --expr +expr -expr ~ !
*/%
+<<>>
<><= >=
== !=
AND &
exclusive OR ^
inclusive OR |
AND &&
OR ||
?:
= += -= *= /= %= &= ^= |= <<= >>= >>>=
Java Kolekcije (Collections) Razlika izmeu niza i kolekcije Niz je tip podatka koji u sebi sadri
skup drugih podataka. Pri tom, niz moe da primi samo podatke jednog tipa i to samo onoliki broj
podataka, koliki je naznaen prilikom inicijalizacije niza. Nije mogue promijeniti veliinu niza nakon
njegove inicijalizacije i nije mogue u njega smjetati razliite tipove podataka. Ovi nedostaci prevazilaze
se drugaijim pristupom, koji podrazumijeva jedan objekat koji u sebi sadri druge objekte uzajamno
povezane referencama. Ovo omoguuje jednostavnu manipulaciju strukturom, jer veoma lako moemo
izbaciti objekat iz liste, tako to emo skinuti referencu na njega, dodati drugi objekat i postaviti referencu
na njega. Pored toga, ovakva struktura, s obzirom da je objektna, bie smjetena u dinamiki dio memorije
(heap) i zbog toga neemo biti ogranieni veliinom ove strukture. Kolekcije, pored toga to slue za
smjetanje podataka, takoer pruaju mogunost i za pristupanje i manipulaciju podacima. Paket
java.util koji predstavlja jedan od osnovnih ugraenih paketa u programskom jeziku Java sadri jedan od
najmonijih Javinih podsistema: The CollectionFramework.
Ovaj okvir (framework) predstavlja sofisticiranu hijerarhiju interfejsa i klasa koji omoguuju tehnologiju
za rukovanje podacima. Sljedee aktivnosti se mogu izvriti upotrebom ovog okvira: dodavanje
objekta u kolekciju, uklanjanje objekta iz kolekcije, pretraga objekata, dobavljanje (koritenje)
objekata, iteracija (prolazak) kroz kolekciju.
Set Kod Set kolekcija se za razliku od prethodnih ne mogu pojaviti duplirani elementi. Ukoliko se u
ovakav tip kolekcija unese objekat koji ve postoji, njegova vrijednost e se upisati preko stare vrijednosti.
Takoer, ovakve kolekcije u jeziku Java ne omoguauju nikakav redosled (postoji klasa ove kolekcije koja
to omoguuje, a to je SortedSet).
MapMap predstavlja kontejner za smjetanje elemenata zajedno sa kljuevima. U ovakvoj strukturi,
lanovi niza se identifikuju prema odreenom kljuu koji ih predstavlja. Ovakve kolekcije ne mogu
sadravati duplirane kljueve. Neke od implementacija ovakve kolekcije su: HashMap, HashTable, TreeMap
i LinkedHashMap.
QueueQueue predstavlja strukturu poznatiju kao FIFO (First In FirstOut). Elementi koji su prvi ubaeni u
ovakvu kolekciju prvi se i uklanjaju iz nje. Ovo je jedna struktura identina strukturi reda u ekaonici u
realnom ivotu.
List
Najee koritena lista u programskom jeziku Java je ArrayList.
Da bismo je koristili, neophodno je implementirati paket java.util.ArrayList, odnosno java.util.* (ovaj
paket je neophodan za sva etiri prethodno pomenuta tipa).
Da bi objekat tipa ArrayList bio kreiran, potreban je konstruktor.
ArrayListmyList = new ArrayList(); NAREDBA
lanove u ArrayList-u dodajemo na sljedei nain:
myList.add("Moje"); myList.add("ime"); myList.add("je...");
U ovako kreiranu listu moemo dodavati lanove bez prethodno definisane veliine liste i ova lista moe
biti neogranieno velika. Loa strana je to je ovakav pristup sporiji od realizacije putem niza.
List Da bismo doli do lana na odreenoj poziciji, koristimo metodu get.
Sami lanovi, numeriu se isto kao i u nizu. U naem primjeru, da bismo doli do stringa ime, kao
parametar metodi get emo proslijediti broj 1:
System.out.println(myList.get(1));
Da bismo izbrisali lana iz liste, koristimo metodu remove:
myList.remove(1); Nakon izvrenja ove naredbe, lista e sadravati dva elementa koji e se ponovo sortirati,
tako da e biti pozicionirani na sljedei nain:
0: Moje 1: je...
U sluaju niza, nakon sline intervencije niz bi izgledao ovako:
0: Moje 1: 2: je...
List
Osim ubacivanja, brisanja i pronalaenja novih lanova, postoji jo nekoliko veoma bitnih
funkcionalnosti koje svaka lista posjeduje.
To su funkcionalnosti za pregled veliine i provjeru lanova.
Za provjeru veliine kolekcije, koristi se metoda size:
for(int i=0;i<myList.size();i++) System.out.println(myList.get(i));
Iteraciju (prolazak) kroz listu moemo izvriti i na sljedei nain. Ovaj nain (for-each) je efikasan kada
je potrebno izlistati sve lanove liste, ali nije koristan ukoliko elimo da vrimo neke ozbiljnije intervencije
na njoj jer ne eksponira iterator (broja): for(String s : myList) System.out.println(s);
Liste mogu prihvatiti bilo koji tip podatka. Tako da moemo napisati :
ArrayListmyList = new ArrayList(); myList.add("Moje"); myList.add("ime"); myList.add("je...");
myList.add(123); for(Object s : myList) System.out.println(s);
Primjer e, bez problema, obraditi sve priloene vrijednosti, iako postoji razlika u tipovima. Ovo je mogue
poto kolekcija sve elemente pretvara u objekat prilikom smjetanja, a prilikom ekstraktovanja ih
opet vraa u prvobitni tip. Ovo se naziva Boxing (pretvaranje u objekat) i Unboxing (vraanje u prvobitni
tip).
esto je potrebno provjeriti da li lista sadri neku vrijednost. Ovo je, naravno, mogue izvesti runo:
for(String s : myList)
if(s.equals("ime"))
System.out.println("Vrijednost postoji!");
Ali, List interfejs sadri i metodu (contains) koja obavlja ovaj posao i vraa vrijednost tipa boolean:
System.out.println(myList.contains("ime")); //ispisat e true
Listu je, u svakom trenutku, mogue konvertovati u niz.
String[] niz = new String[myList.size()];
for(int i=0;i<myList.size();i++) niz[i]=myList.get(i);
Ili uz pomo metode toArray: String[] niz = myList.toArray(new String[myList.size()]);
Brisanje liste vri se metodom clear.
myList.clear();
Map
esto upotrebljavani tip kolekcije u Javi.
To je niz parova : klju i vrijednost, odnosno asocijativni niz.
Klase koje omoguavaju upotrebu ovih kolekcija u Javi nasljeuju interfejs Map.
U ovakvoj strukturi, lanovi niza se identifikuju prema odreenom kljuu koji ih predstavlja.
Npr., u kolekciji osoba, JMBG bi bio klju, dok bi podaci (ime, prezime, adresa), predstavljali vrijednost za
svaku osobu. Ako bismo eljeli da pronaemo odreenu osobu, dovoljno bi nam bilo da znamo njen matini
broj, odnosno, klju.
Najee koritena klasa ovog tipa je HashMap.
Primjer upotrebe ove klase.
HashMaphashMap = new HashMap();
Nakon instanciranja klase hashMap parovi se dodaju upotrebom metode put:
hashMap.put("1234567890123", "Ivo Ivi"); hashMap.put("1234567890124", "Edo Edi");
Vrijednost, koja stoji ispod kljua, mogue je dobiti metodom get:
System.out.println(hashMap.get("1234567890124"));
Generalno pravilo je da niz kljueva i parova sadri samo unikatne (jedinstvene) kljueve. U sluaju
HashMap klase unos istoimenih kljueva nee izazvati greku, ali e, prilikom pretrage, ispod kljua biti
samo posljednji dodani klju (stari klju e biti pregaen).
Java - Obrada i generisanje izuzetaka
Pojam izuzetka
Izuzetak reprezentuje greku koja se moe dogoditi u toku izvravanja programa (runtime). Greka je
odstupanje od normalnog ponaanja aplikacije. Izuzetak je dogaaj koji nastaje u toku izvravanja programa
kada doe do greke i koji remeti normalni tok odvijanja programa.
Uzrok izuzetka mogu biti razliiti problemi. Npr. mogue je da aplikacija zahtijeva odreeni fajl sa fajl
sistema koji ne postoji. U tom sluaju nije napravljena nikakva greka u kodu, osim to je programer uzeo u
obzir da e potrebni fajl uvijek postojati, a to ipak nije sluaj. Pored ovoga, izuzetak se moe javiti i zbog
loe napisanog koda. Npr.:
publicclassTestClass {
publicstaticvoidmain(String[] args) {
int[] brojevi= new int[4];
brojevi[7] = 10;
Posljedice pojave izuzetka
Izuzetak se moe javiti u okviru metoda. (Jer ako neto nije dobro definisano prilikom kreiranja
komponenti , program se nee ni prevesti.)
Kada se greka pojavi u toku izvravanja jedne metode kreira se objekat koji se predaje izvrnom sistemu.
Ovaj objekat naziva se objekat izuzetka (exceptionobject) i on sadri informacije o samoj greki, koje
obuhvataju tip greke i stanje programa u trenutku kada se greka dogodila.
Proces kreiranja objekta izuzetka i predaja ovog objekta izvrnom sistemu naziva se izbacivanje izuzetka
(throwing an exception).
Nakon to metoda u kojoj je dolo do greke izbaci izuzetak, izvrni sistem pokuava da pronae dio koda
koji e izvriti obradu nastalog izuzetka.
Trai se (pronalazi) ona metoda koja sadri kod za rukovanje nastalim izuzetkom, odnosno njegovo
hvatanje.
Ukoliko se niti u jednoj metodi ne pronae kod za obradu nastalog izuzetka, izuzetak zavrava u virtuelnoj
maini.
Problem je to JVM-a u ovoj situaciji prekida izvravanje aplikacije i prikazuje poruku izuzetka, odnosno
greke. Ukoliko pokrenemo kod iz gornjeg primera, moemo vidjeti proizvedenu greku:
Obrada izuzetaka
Hvatanje izuzetaka odnosno njihova obrada postie se koritenjem blokova try-catch.
U prethodnom primjeru hvatanje izuzetka bismo izvrili:
publicstaticvoidmain(String[] args) {
int brojevi[] = new int[4];
try
{
brojevi[7] = 10;
}
catch (Exceptionexc)
{
System.out.println("Index izvan okvira!");
}
}
Na ovaj nain, nee doi do prekida izvravanja aplikacije, ve emo na izlazu dobiti poruku:
Index izvan okvira!
Prvi blok koji je definisan i kao try blok sadri kod u kome oekujemo greku, a drugi blok (catch blok )
predstavlja blok u kome se nalazi kod koji e tu greku obraditi.
Oba bloka su obavezna i nije ih mogue navesti posebno.
Catch blok obavezno prihvata i parametar Exception tipa. Exception klasa je osnovna klasa izuzetka i
izuzetak ove klase u parametru e biti uvek uhvaen.
Pored try i catch blokova, postoji i trei blok, koji se naziva finally. Ovaj blok se izvrava svaki put, bez
obzira na ishod prethodnih blokova. U njemu se, obino, nalaze sistemi za zatvaranje resursa (zatvaranje
toka, konekcije sa bazom i sl.).
podataka
se
manipulie
koritenjem
sistema
za
rukovanje
bazama
podatka
Java DB
Za upravljanje bazama podataka koriste se sistemi za upravljanje bazama podatka ili DBMS
(DatabaseManagementSystem).
Ovdje e biti obraena relaciona baza podatka, a ovi sistemi se nazivaju RDBMS
(RelationalDatabaseManagementSystem).
Sistemi za upravljanje bazama podatka : MySQL, Microsoft SQL Server, SQLite, ApacheDerby,
Oracle RDBMS.
Danas najkoriteniji sistem za rukovanje bazama podatka je MySQL.
MySQL kao sistem za rukovanje bazama podatka koriste i: Facebook, Twitter, Youtube, Flicker,
Wikipedia i mnogi drugi.
Java DB
JDK od verzije 6 dolazi sa integrisanim sistemom za rukovanje bazama podatka, kako bi se programerima
omoguilo da testiraju napisani JDBC kod.
Ovaj sistem za rukovanje bazama podatka naziva se Java DB i predstavlja distribuciju Apache-vogopensource projekta pod nazivom Derby.
Java DB se kompletno bazira na Java programskom jeziku i SQL-u i karakterie ga veoma malo zauzee
memorije (oko 2MB).
Java DB posjeduje mogunost rada u jednostavnom ugraenom (embedded) okruenju i u klijent/server
okruenju.
U okviru NetBeans razvojnog okruenja postoji GUI (grafiko korisniko okruenje) za upravljanje JAVA
DB bazama podataka.
Da bismo pristupili ovoj NetBeans funkcionalnosti dovoljno je odabrati naslov Services:
Tabele se mogu dodati koritenjem SQL upita ili kroz GUI, gdje e na osnovu naeg unosa okruenje
izgenerisati odgovarajui SQL upit.
Da bismo samostalno unijeli SQL upit moemo odabrati opciju ExecuteCommand.
Da bismo kreirali nau tabelu potrebno je napisati SQL upit:
CREATE table USERS (ID INTEGER NOT NULL PRIMARY KEY GENERATED ALWAYS AS
IDENTITY (START WITH 1, INCREMENT BY 1), USERNAME VARCHAR(30), PASSWORD
VARCHAR(30)
SQL komanda se pokree klikom na ikonu Run SQL.
JDBC
Kreirat emo novi projekat, tj. Java aplikaciju u kojoj emo se povezati na kreiranu bazu i izvriti osnovne
operacije.
Za manipulisanje podacima iz baze podataka kroz aplikaciju napisanu u Java programskom jeziku korisiti
se JDBC (Java DatabaseConnectivity) API.
JDBC se koristi kako bi se obavile razliite operacije nad podacima u bazi, tj. kako bi se izvrile
mnogobrojne SQL naredbe kojima se manipulie podacima.
Iako se JDBC primarno koristi za komunikaciju sa sistemima za rukovanje relacionimbazama podataka
(RDBMS), on se moe koristiti i za komunikaciju i sa bazama smjetenim u okviru fajla.
DriverManager.getConnection("jdbc:derby://localhost:1527/test_database",
"test_user", "123");
Poto metoda getConnection klase DriverManager moe da izbaci izuzetak tipa java.sql.SQLException ili
izuzetak nekog tipa izvedenog iz ovog izuzetka , potrebno je liniju za uspostavljanje konekcije obavezno
smjestiti u okviru blokova za obradu izuzetaka.
JDBC
try
(Connectionconn
DriverManager.getConnection("jdbc:derby://localhost:1527/test_database",
"test_user", "123");) {
}
catch (SQLException ex)
{
System.out.println("Error in databaseconnection: \n" + ex.getMessage());
}
Konekcija se mora zatvoriti kada vie nije potrebna.
U gornjem kodu linija kojom se uspostavlja konekcija sa bazom podataka smjetena je u okviru malih
zagrada try bloka, pa e se nakon zavretka try bloka konekcija automatski zatvoriti.
JDBC
Statementinterfejsi
Nakon kreiranja konekcionog objekta, aplikacija moe vriti interakciju sa bazom podataka navoenjem
SQL naredbi (CREATE TABLE, INSERT, SELECT, UPDATE, DELETE, DROP TABLE).
JDBC podrava SQL naredbe kroz sledee interfejse:
java.sql.Statement
java.sql.PreparedStatement
java.sql.CallableStatement
Klasa Connectiondeklarie metode: createStatement(), prepareStatement() i prepareCall() koje redom
vraaju : Statement, PreparedStatement i CallableStatement.
Statement i ResultSet
Statement je interfejs koji je najlaki za koritenje.
Metoda createStatement() klase Connection je metoda koja je najlaka za dobijanje Statement instance.
Kd za insertovanje i itanje vrijednosti u kreiranu tabelu baze podataka (INSERT i SELECT SQL
naredbe) glasi:
Statement i ResultSet
publicstaticvoidmain(String[] args) {
try
(Connectionconn
DriverManager.getConnection("jdbc:derby://localhost:1527/test_database",
"test_user", "123");)
{
StatementstInsert = conn.createStatement();
stInsert.execute("insert intousers (username,password) values ('myUserName','myPassword')");
StatementstSelect = conn.createStatement();
ResultSetrs = stSelect.executeQuery("select * fromusers");
while (rs.next()) {
System.out.println("User:");
System.out.println("Username: " + rs.getString("username"));
System.out.println("Password: " + rs.getString("password"));
System.out.println("\n");
}
} catch (SQLException ex) {
System.out.println("Error in databaseconnection: \n" + ex.getMessage());
}
}
Statement i ResultSet
U prethodnom kodu izvreno je
1.Kreiranje konekcije na bazu podataka.
2.Kreiranje Statement objekta sa nazivmstInsert i koritenjem metode execute izvrena SQL naredba za unos
podataka u bazu.
3.Nakon ubacivanja podataka u bazu, kreiran je novi objekat tipa Statement sa nazivom stSelect, a zatim je
koritenjem metode executeQuery, izvrena SQL naredba za dobavljanje zapisa iz baze. Ova metoda vraa
ResultSet objekat u okviru koga e se nalaziti proitani zapisi.
4.Za itanje zapisa iz ResultSet objekta koristi se jedna while petlja, a za provjeru dostupnosti proitanih
polja iz baze koristi se metoda next, koja vraa true ili false u zavisnosti od postojanja sljedeeg zapisa.
5.Prilikom itanja podataka iz ResultSet, koriste se metode za specifine tipove podataka. Na ovaj nain vri
se mapiranje podataka iz baze u tip podataka podran u Java jeziku.
CallableStatement
CallableStatement predstavlja najspecijalizovaniji od pomenuta tri interfejsa.
Koristi se za izvravanje SQL stored procedura.
Stored procedure predstavlja listu SQL naredbi koje su grupisane u logiku cjelinu koja obavlja odreenu
funkciju.
Java DB se razlikuje od veine ostalih RDBMS-a po pitanju implementacije stored procedura.
U Java DB sistemu, stored procedure se implementiraju kao Java metode sa publicstaticmodifikatorima
pristupa.
U MySQL sistemu za upravljanje bazama podataka storedprocedures se smetaju u okviru same baze.
MySQL je vienamjenskarelaciona baza, veoma popularna u raznim sferama programiranja.
Da bismo upravljali MySQL bazom, koristimo MySQLconnector/JDBC.
Za definisanje SQL upita moe se koristiti Statement interfejs.
Za definisanje SQL upita sa dinamikim parametrima moe se koristiti interfejs PreparedStatement.
Za pozivanje storedprocedure-a se koristi interfejs CallableStatement.
MySQL je vienamjenskarelaciona baza, veoma popularna u raznim sferama programiranja. Brza je, ima
veliki kapacitet i podrana je od strane svih vanijih operativnih sistema. Besplatna je.
Da bismo koristili neku programsku tehnologiju sa nekom bazom podataka, proizvoa baze mora
omoguiti paket drajvera za tu tehnologiju.
Ovi drajveri nazivaju se konektori i obino sadre set funkcionalnosti za rukovanje bazom.
Java sistem za rukovanje bazom podataka naziva se JDBC (Java DatabaseConnectivity) i da bismo uz
pomo njega upravljali MySQL bazom, koristimo MySQLconnector/JDBC. Ovaj konektor mogue je
skinuti sa adrese:
http://dev.mysql.com/downloads/connector/j/5.1.html
Takoe, ovaj konektor ugraen je i u NetBeans pa je dovoljno samo implementirati ga kao biblioteku u
projekat.
Rukovanje bazom podataka
Za manipulisanje podacima iz baze koristi se Data Manipulation set Sql naredbi: Select, Insert, Update i
Delete.
Za instalaciju MySQL servera preporuuje se instalacija Wamp paketa jer u sebi sadri i web server, kao i
PHPmyAdmin web aplikaciju za rukovanje MySQL bazom podataka, koja je nezaobilazna MySQL kontrola
na veini hostingprovajdera.
Za dalji rad potrebno je kreirati bazu podataka Test i u njoj tabelu Korisnici sljedee strukture:
CREATE TABLE korisnici (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
email VARCHAR( 256 ) NOT NULL , password VARCHAR( 236 ) NOT NULL ) ENGINE = innodb