Skip to content

Commit

Permalink
Formázások és új JDBC feladat.
Browse files Browse the repository at this point in the history
  • Loading branch information
rlegendi committed Apr 12, 2012
1 parent d349ef7 commit 3ffc0b2
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 37 deletions.
24 changes: 12 additions & 12 deletions 11-reflection/11-reflection.md
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -29,27 +29,27 @@ Objektumreferencia megszerzése:


* Objektumtól lekérdezhető: * Objektumtól lekérdezhető:


``` java ``` java
Class<?> clazz = this.getClass(); Class<?> clazz = this.getClass();
``` ```


* Osztálytól lekérdezhető: * Osztálytól lekérdezhető:


``` java ``` java
Class<?> intClazz = int.class; Class<?> intClazz = int.class;
``` ```


* Közvetlenül név szerint lekérdezhető: * Közvetlenül név szerint lekérdezhető:


``` java ``` java
Class<?> clazz = Class.forName("java.lang.Boolean"); Class<?> clazz = Class.forName("java.lang.Boolean");
``` ```


* Új osztály létrehozása: * Új osztály létrehozása:


``` java ``` java
Proxy.getProxyClass(clazz.getClassLoader(), clazz.getInterfaces()); Proxy.getProxyClass(clazz.getClassLoader(), clazz.getInterfaces());
``` ```


## Példa ## ## Példa ##
``` java ``` java
Expand Down
77 changes: 52 additions & 25 deletions 17-jdbc/17-jdbc.md
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -132,38 +132,38 @@ Három lehetőség:
áttekinthetőség érdekében a `String` literál lezáró `"` jeleket és a áttekinthetőség érdekében a `String` literál lezáró `"` jeleket és a
konkatenációt elhagytam): konkatenációt elhagytam):


``` java ``` java
String strCreateTable = "CREATE TABLE inventory String strCreateTable = "CREATE TABLE inventory
( (
id INT PRIMARY KEY, id INT PRIMARY KEY,
product VARCHAR(50), product VARCHAR(50),
quantity INT, quantity INT,
price DECIMAL price DECIMAL
)"; )";

statement = dbConnection.createStatement(); statement = dbConnection.createStatement();
statement.execute(strCreateTable); statement.execute(strCreateTable);
``` ```


* `executeQuery(String)`: lekérdezéshez, az eredmény egy `ResultSet` objektum * `executeQuery(String)`: lekérdezéshez, az eredmény egy `ResultSet` objektum
lesz. %Mindig olvassátok végig az eredményt, mert addig nem záródik. Pl.: lesz. %Mindig olvassátok végig az eredményt, mert addig nem záródik. Pl.:


``` java ``` java
ResultSet rs = statement.executeQuery("SELECT * FROM inventory"); ResultSet rs = statement.executeQuery("SELECT * FROM inventory");
while (rs.next()) { while (rs.next()) {
String p = rs.getString("product"); String p = rs.getString("product");
int q = rs.getInt("quantity"); int q = rs.getInt("quantity");
double d = rs.getDouble("price"); double d = rs.getDouble("price");
... ...
} }
``` ```


* `executeUpdate(String)`: insert, update, delete, és adatdefiníciós * `executeUpdate(String)`: insert, update, delete, és adatdefiníciós
utasításokhoz, az eredmény a módosított sorok száma (vagy 0). Pl.: utasításokhoz, az eredmény a módosított sorok száma (vagy 0). Pl.:


``` java ``` java
statement.executeUpdate("DELETE WHERE id=0"); statement.executeUpdate("DELETE WHERE id=0");
``` ```


## Kötegelt végrehajtás ## ## Kötegelt végrehajtás ##
Van rá lehetőség, hogy parancsokat összefogjunk, és egyszerre küldjünk el a Van rá lehetőség, hogy parancsokat összefogjunk, és egyszerre küldjünk el a
Expand All @@ -188,7 +188,7 @@ változtattak a DB-ben (itt `[0, 1, 1, 1, ...]` lesz).
> * <http://www.jdbc-tutorial.com/> > * <http://www.jdbc-tutorial.com/>
> * <http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javadb/> > * <http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javadb/>
## Feladat ## ## Grafikus Kliens ##
Készítsetek egy egyszerű adatbázis kezelő grafikus felületet, amely az alábbi Készítsetek egy egyszerű adatbázis kezelő grafikus felületet, amely az alábbi
ábrán látható! A program tartalmazzon egy `JTextField` komponenst, ahol a ábrán látható! A program tartalmazzon egy `JTextField` komponenst, ahol a
lekérdezést lehet megadni, egy `JTextArea` komponenst, ahol megjeleníti az lekérdezést lehet megadni, egy `JTextArea` komponenst, ahol megjeleníti az
Expand All @@ -210,3 +210,30 @@ utasítást.
metódussal írjátok ki. Ehhez tudnotok kell, hogy hány oszlop található az metódussal írjátok ki. Ehhez tudnotok kell, hogy hány oszlop található az
eredményben, ezt a `ResultSet#getMetaData()` függvényen keresztül elért eredményben, ezt a `ResultSet#getMetaData()` függvényen keresztül elért
objektumtól tudjátok lekérdezni. objektumtól tudjátok lekérdezni.

## Névjegyzék ##

Készítsetek egy szerveralkalmazást, amely adatbázisban képes tárolni elérhetőségeket!

A következő adatok szükségesek egy bejegyzéshez:

* Név
* Becenév (opcionális)
* Telefonszám
* E-mail cím
* Cím
* Születésnap
* Kép (URL)

A szerverhez kliensek csatlakoznak (egyelőre egyszerre egy), és képesek ezeket az adatokat létrehozni, lekérdezni, frissíteni és törölni (CRUD). A kliens elég, ha egyszerű konzolos felülettel rendelkezik.

A feladatot vagy RMI, vagy saját protokoll implementálásával socketeken keresztül oldhatod meg.

### Továbbfejlesztési lehetőségek ###

* Feltesszük, hogy egy személynek egyszerre csak egy elérhetősége van. Készíts egy másik táblát, ami a névhez különböző elérhetőségeket rendel!
* Készítsd fel az alkalmazást tranzakciókezelésre!
* Egyszerre akár több kliens is használhassa párhuzamosan a szervert!
* A kliens képes legyen egy egyszerű CSV (*Coma Separated Values*) fájlból adatokat beolvasni, és azokat egyszerre továbbítva tárolni a szerverben.
* A kliens legyen képes egy egyszerű HTML formátumű listát generálni a szerveren tárolt azonosítókból.

0 comments on commit 3ffc0b2

Please sign in to comment.