- ldave: New Game Blitz - 2025
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- erkxt: A Roidmi becsődölt – és senki nem szól egy szót sem?
- Hold - SW Heritage - Auto üzemmód
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- MasterDeeJay: Noname 1TB-os SATA SSD teszt
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Gurulunk, WAZE?!
- droidic: YouTube videók és playlistek letöltése GUI-alkalmazással
Új hozzászólás Aktív témák
-
td
senior tag
Semmi különös okom nincs rá, csak a meglévő kódot minimálisan szerettem volna módosítani. Tranzakciót egyébként nem használok benne, szóval az insert eredménye az benne maradna a táblában (végül is ez csak amolyan demonstráció-progi, nem akarom túlvariálni, mert a lényeg nem ezen van, de még lehet, hogy beleteszem).
Amúgy meg rájöttem (olvastam), hogy egy rs = psmt.executeQuery(), aztán if (rs.next()) is megteszi.
-
btotyi
tag
Nem igazán értem mért akarod a visszatérési értéket kezelni. Ha az insert sikeresen lefut akkor úgyis a következő sorra (update) lép. Ha nem (pl kulcs megsértés vagy null érték not null-os mezőbe) kivétel keletkezik akkor pedig rollback így az insertben felvitt rekordo(ka)t eldobja.
Ha szüksége van az insert utáni értékre pld. a kapott id-t tovább kell vinni, akkor vagy tárolt eljárás vagy generator/sequence használata javaslott, természetesen egy tranzakció belül.
-
td
senior tag
Köszi, ilyen szinten ismerem a settereket. Csak arra lettem volna kíváncsi, hogy mivel véd az SQL injection ellen, de ha így végiggondolom, akkor meg is van a válasz szerintem.
A másikat akkor hogy lehet jól működővé tenni? Merthogy false-ot ad vissza, ha az első eredmény egy update count vagy ha nincs eredménye az SQL-nek.
if (rs.getUpdateCount()) ?
vagy:
if (rs.getMoreResults()) ?
-
btotyi
tag
A ps1.execute csak akkor add vissza true-t ha a visszatérési objektum resultset. Mivel az insert nem azt ad vissza igy persze, hogy false.
Setterek: A preparedstatement leküldi az SQL-t a szervernek előkészítésre. Az lefordítja, felkészül. A setterek beállítják a paramétereket, az execute pedig végrehajtja. A korábban említett előnyök mellett nagy hasznát veheted kötegelt adattöltésnél. Ilyenkor query egyszer előkészít, sokszor végrehajt, nagyon gyorsan.
Erre szolgál a tranzakció.
try {
// Disable auto commit
connection.setAutoCommit(false);
// Do SQL updates...
// Commit updates
connection.commit();
} catch (SQLException e) {
// Rollback update
connection.rollback();
} -
td
senior tag
Na megvan a gond. Idézőjelbe kell tenni a mezőneveket is, de oda már nem kell a user neve. Ez preparedStatement-re is igaz.
Viszont újabb probléma lépett fel:
PreparedStatement ps1 = conn.prepareStatement("INSERT INTO \"WHUSER\".\"Orders\" VALUES (?, ?, ?, ?, 0, 0, ?)");
ps1.setString(1, articleID);
ps1.setInt(2, quantity);
ps1.setString(3, customerID);
ps1.setLong(4, totalcost);
ps1.setLong(5, trackID);
if (ps1.execute()) {
...Megfogadván tanácsodat, alkalmaztam az előkészített lekérdezéseket (tényleg, miket csinálnak a háttérben a setterek?), de az if igaz ága valamiért nem fut le. Több ilyen lekérdezésnél is rendben van, de ennél az egynél valami nem tetszik neki. A furcsa viszont az, hogy az INSERT berakja a sort, tehát az execute()-nak nem kéne hamisat visszaadnia...
Ez az if azért fontos, mert az INSERT sikerétől függően kell update-elni is. setLong()-gal BIGINT mezőket állítok be, a többi varchar és integer. -
td
senior tag
Az exception ez:
org.apache.derby.client.am.SqlException: Invalid operation to read at current cursor position.
Ez akkor van, amikor egy sima SELECT * FROM tábla jellegű lekérdezést csinálok. Az rs.getFetchSize() is nullát ad vissza. Viszont ha kiadok előtte egy rs.next()-et, akkor már nem nulla, és kivétel sem keletkezik. És rendesen le is lehet kérni a mezőértékeket, persze ezeket az első sorból adja.
A SET SCHEMA nem működött sajnos. Az APP-be hogyan tudom betenni? A jobb klikk/Properties... lapon nem lehet átállítani a Schema sort, és amikor a táblát létrehoztam, akkor is csak a WHUSER volt kiválasztható (legalábbis az Owner listából).
Ezt próbáltam amúgy:
stmt.execute("SET SCHEMA=WHUSER");
ResultSet rs = stmt.executeQuery("SELECT * FROM \"WHUSER\".\"Stock\" WHERE ArticleID='" + articleID + "'");És ugyanaz lett a kivétel, mint máskor is:
org.apache.derby.client.am.SqlException: Column 'ARTICLEID' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE statement then 'ARTICLEID' is not a column in the target table.Csináltam úgy is, hogy a WHUSER-t '-ok közé tettem, de semmi... (kivétel amúgy arra nem volt)
A másik ötletet (parametrizált query) köszi, majd még kipróbálom azt is. Bár most nem az injection a legnagyobb gondom.
-
btotyi
tag
A getInt-nél mi a kivétel:
Én így szoktam
ResultSet ers = plm.executeQuery();
while (ers.next()) {
V_Elem lm = new V_Elem();
lm.setId(ers.getLong("ID"));
}Egy elemnél pedig simán
if (rs.next()) {
}Használd a SET SCHEMA=WHUSER utasítást. Vagy tedd az adataidat az APP sémába (Az a Derby alapértelmezett sémája).
A Insert/Update queryknél használj parametrizált queryt. Átláthatóbb, véd az SQL injekcion ellen.
pld.
PreparedStatement ps = conn.prepareStatement("update akarmi set nev=? where id=?");
ps.setString(1,"Az új név");
ps.setLong(2, 12); // az adott ID
ps.execute(); -
ZéZé@PH
aktív tag
% jel tetszőleges karaktersorozatot jelöl, ha azt akarod hogy résszóra is működjön a keresés akkor elengedhetetlen. Még egy tipp: LOWER sql függvény csupa kis betűs szóvá alakít. Ha csupa kis betűst hasonlítasz össze csupa kis betűssel, akkor azt is megoldottad, hogy ne legyen a keresésed case sensitive.
Én a mysql-en kívül nem tudok másik ingyenes sql-es adatbázist. Használnak még ugye Oracle-t meg a Microsoft sql-es adatbázisát, de ezek nem ingyenesek.
-
SamIam
csendes tag
Köszi mindenkinek. Végül ez lett a jó megoldás (ha érdekes valakinek):
ResultSet rs = st.executeQuery("SELECT * FROM MUNKAK WHERE "+lek.getMezo()+" LIKE '%"+lek.getErtek()+"%'");
affene gondolta, hogy mysql ' " " ' és %-t akar .
Azért a prepared-et is kipróbálom majd.
Még egy: cégnek mi volna ingyenes AB? -
td
senior tag
Sziasztok!
NetBeans/Java adatbáziskezelésben otthon van valaki közületek? Az IDE-hez adott Derby-t használnám az egyszerűség kedvéért, de - alapvetően két okból kifolyólag - nem boldogulok vele.
Egyszerű csatlakozás és lekérdezés/adatmódosítás lenne a programban, konkrétan redelések rögzítése (ill. egy limitellenőrzés is).
A DBConnect kapcsolódik az adb-hez, a másik kettő metódus egy-egy webszolgáltatást valósít meg. Ami nem megy, és mindig kivételt dob, az a két következő fajta hívás:
rs.first()
rs.getInt() / ill. rs.getString()Valami nagyon nem stimmel nálam ezzel a ResultSet objektummal...
A másik gondot az SQL-utasítások okozzák. Arra már rájöttem, hogy valami oknál fogva nem elég a táblanevet megadni, hanem minősíteni kell a user nevével, amire létrehoztam még az IDE-ben, és idézőjelek közé kell írni. Tehát pl. Stock helyett "WHUSER"."Stock". Ezt onnan szedtem, hogyha a Databases alatt nyomok a táblán egy View Data-t, akkor a NetBeans is ilyen formában adja meg.
Viszont ettől még a SELECT * FROM ... jellegű lekérdezéseknél bonyolultabbak nem mennek, ott is reklamál, itt például:
int rows2 = stmt.executeUpdate("UPDATE \"WHUSER\".\"Orders\" SET OrderedByCustomer=" + orderedByCustomer + " WHERE ArticleID='" + articleID + "'");
...ez a gondja: org.apache.derby.client.am.SqlException: 'OrderedByCustomer' is not a column in table or VTI 'WHUSER.Orders'.
A táblanév az már jól van hivatkozva, de a mezőnév nem tetszik neki, és a táblához hasonló hivatkozással sem megy (WHUSER.Orders.OrderedByCustomer, persze idézőjelekkel).
Nem tudom, milyen SQL-t használ ez a rendszer, de elég fura dolgai vannak.Hálás lennék, ha valaki tudna ebben segíteni!
(MOD: ja, és még egy dolog. Azért jó lenne, ha valami rs.next() jellegű lépegetést is meg tudnék oldani, mert egy JSP-ben meg az árucikkeket szereném kiválaszthatóvá tenni egy legördülő listával.)
Idemásolom a kódot, vannak kommentek is.
package com.sun.customerorderhandler;
import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import java.sql.*;
import javax.xml.ws.WebServiceRef;
@Stateless()
@WebService()
public class CustomerOrderHandler {
@WebServiceRef(wsdlLocation = "http://localhost:8080/AmountPriceQueryService/AmountPriceQuery?wsdl")
private com.sun.customerorderhandler.AmountPriceQueryService service;
static long CUSTOMERLIMIT = 60000;
public Connection DBConnect() throws java.sql.SQLException {
return DriverManager.getConnection("jdbc:derby://localhost:1527/FurnitureWarehouse","whuser","whpass");
}
/**
* Web service operation
*/
@WebMethod
public long checkCustomerLimit(@WebParam(name = "customerID") String customerID, @WebParam(name = "totalCost") long totalCost) {
// TODO implement operation
Connection conn;
try {
conn = DBConnect();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT SUM(TotalCost) FROM Orders WHERE CustomerID=" + customerID + " AND Paid=0");
rs.first();
long owsTotal = rs.getInt(1); // egyetlen oszlop van
conn.close();
return (owsTotal + totalCost) - CUSTOMERLIMIT; // ha a limit fole megy, pozitiv lesz
}
catch (Exception e) {
return 9999999; // mintha a limit fole ment volna
}
}
/**
* Web service operation
*/
@WebMethod
public long placeOrder(@WebParam(name = "articleID") String articleID, @WebParam(name = "quantity") int quantity, @WebParam(name = "customerID") String customerID) {
// TODO implement operation
Connection conn;
try {
conn = DBConnect();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Stock WHERE ArticleID=" + articleID);
rs.first();
int price = rs.getInt("Price");
int orderedByCustomer = rs.getInt("OrderedByCustomer");
long totalCost = quantity * price; // a rendeles teljes ara
orderedByCustomer++; // vevok altal rendelt, kiszallitatlan mennyiseg
long trackID = Math.round(Math.random()*1000000000); // 10.000.000
int rows1 = stmt.executeUpdate("INSERT INTO Orders VALUES ('" + articleID + "', " + quantity + ", '" + customerID + "', " + totalCost + ", 0, 0, " + trackID + ")");
int rows2 = stmt.executeUpdate("UPDATE Orders SET OrderedByCustomer=" + orderedByCustomer + " WHERE ArticleID='" + articleID + "')");
conn.close();
if (rows1 == 0) return 0; // ha nem tudta rogziteni a rendelest
return trackID; // egyebkent a nyomonkovetesi azonosito visszaadasa
}
catch (Exception e) {
return 0; // ha sikertelen volt a muvelet
}
}
} -
Sanyix
őstag
és az nem lenne egyszerűbb, hogy prepared statement, és:
PreparedStatement stm= conn.prepareStatement ("SELECT * FROM MUNKAK WHERE ? LIKE ?";
stm.setString(1,getMezo());
stm.setInt(2,getErtek()); //persze nemtudom itt milyen típusnak kell lenni, ezt te tudod
ResultSet rs =stm.commit(); -
shev7
veterán
het ha a lek.getMezo() idezojelek kozott adja vissza a stringet akkor idezojelek kozott van.
de tenyleg sok szivastol mentened meg magad ha prepared statementeket hasznalnal.
Ezt irtad:
"SELECT * FROM MUNKAK WHERE "+lek.getMezo()+" LIKE "+lek.getErtek()+""
ez kene helyette:
"SELECT * FROM MUNKAK WHERE \""+lek.getMezo()+"\" LIKE \""+lek.getErtek()+"\""
-
Sanyix
őstag
Van egy táblázatom, jsf-ben genrált, a táblázat soraiban lévő gombokra kattintva kattinva javascript betölti a generált beviteli mezőkbe az adatokat. De, dátumnál ilyen yyyy-MM-dd formátumot használ, nekem meg a - helyett . kéne. Át is lehet állítani, kimenetnél, de csak a kimenetre. De ilyen másolgatásnál megint a kötőjelest másolja Mit lehet ezzel csinálni?
-
SamIam
csendes tag
-
ZéZé@PH
aktív tag
Mert az adatbázis felé a programozónak kell gondoskodnia a típuskonverzióról, legalábbis általában.
Nem tudom milyen adatbázis szervert használsz, de Oracle-nél azonnal hibát dob ha számot vár de varchar-t kap.
Egyébként valóban paraméteres lekérdezéseket érdemes használni,már csak biztonsági okból is. -
SamIam
csendes tag
-
Sanyix
őstag
Mert ezt így sztem nem lehet csinálni. Ismeretlenek helyére ?-t kell írni, majd st.setvalamitípus(abehelyettesítendőérték,hanyadikkérdőjel), de asszem el is lehet neveznia változókat kérdőjel meg sorszámozás helyett, és preparedstatementet kéne használni. Valahogy így van. De adatbázisozásra ajánlom a hibernate.org pakkot, elég jó dolog, csak picit szokatlan elsőre. Abban ennyi egy lekérdezés:
Session session = getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
Query query = session.createQuery("from Email where id=:qid");
//logger.trace(query);
query.setInteger("qid", id);
result = query.list();
session.getTransaction().commit();
logger.info("Sikeres lekérdezés!");
} catch (HibernateException e) {
e.printStackTrace();
logger.error("Hiba lekérdezésnél!");
}És ennyi egy új rekord létehozása, és persze törődik a hibákkal is, így nemnagyon lehet belerondítani az adatbázisba.
try {
tx= sess.beginTransaction();
Adatok adt = new Adatok(veznev,kernev, sqldate);
sess.save(adt);
tx.commit();
} catch (HibernateException e) {
logger.error("Hiba az adatbázisműveletnél!");
tx.rollback();
return false;
}Ja és a megírt kód működik akármilyen adatbázison, amihez van driver (én 40 félét találtam, tehát van nemkevés
).
-
SamIam
csendes tag
Hali
Megtudná valaki mondani, hogy ez miért csak számokkal működik?ResultSet rs = st.executeQuery("SELECT * FROM MUNKAK WHERE "+lek.getMezo()+" LIKE "+lek.getErtek()+"");
String lenne mind a kettő (Mezo, Ertek), de csak akkor keresi ki az AB-ból, ha ott számok vannak rögzítve.
Köszi, ha van segítség.
-
Bobbysolo
tag
Sziasztok!
Kellene nekem egy ingyenes, könnyen kezelhető program, ami Java kódból tud osztálydiagramot csinálni. (Eclipse plugin is lehet akár.)
Mi a legjobb erre a célra?
Köszönöm előre is!
Bobbysolo -
Sanyix
őstag
Ja mostmár megoldottam, jsf-be ennyi megy.
<h:commandButton value="Gomb" onclick="document.getElementById('azid_').value= #{adatok.id}" />Viszont jsf-ben nem látszódnak normálisan az id-k erre van egy j4j nevű csomag aminek van egy proxyid nevű izéje... csakhát megint le kéne tölteni, és itt azt nem lehet.
-
Sanyix
őstag
Most ott tartok, hogy az adattáblába az adatok mell kellene egy gomb, amit ha megnyom a júzer, a táblázat ugyanabban a sorában lévő egyik adatot beírja egy h:inputtext-be. Ez javascriptel úgylátom megoldható lenne, ha a datatableban a gombokat úgy generálná, hogy annak az action értékében látszódna az a bizonyos adat. Szóval az kéne hogy van egy lista, id-kkel, és ha rákattintok a lista valamelyik sorában lévő gombra, a mellette lévő id-t berakja az inputtextbe, azért hogy ne a listán kelljen keresgélni az id-t és bemásolni, hanem a sorban való kattintással bekerüljön. Erre tud valaki megoldást?
-
Lortech
addikt
Ez így nagyon messze van.. Ha socket osztállyal akarod megoldani, akkor a HTTP protokoll szükséges részeit neked kell implementálnod. Nem véletlenül mondtam a HttpURLConnection tippet.
Itt egy példa fájl letöltés : [link]Itt a HttpURLConnection osztály leírása. Ott a lényeg a getResponseMessage() és a getResponseCode(), ami a HTTP válaszkódot tartalmazza.
-
pawee
tag
na eddig eljutottam nagyjábó megyeget a dolog, már scak annyit szertnék kérni segítségül hogy a HTTP kódokat hogytom kierőszakolni, és a fájlokat lementeni a szerverről?
public class ddd {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
String hostname = "startlap.hu";
int port = 80;
InetAddress addr = InetAddress.getByName(hostname);
Socket socket = new Socket(addr, port);
String path = "/";
BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));
wr.write("POST "+path+" HTTP/1.0\r\n");
wr.write("Content-Length: "+data.length()+"\r\n");
wr.write("Content-Type: application/x-www-form-urlencoded\r\n");
wr.write("\r\n");
wr.write(data);
wr.flush();
// System.out.println(socket.toString());
BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));
/**String line;
while ((line = rd.readLine()) != null) {
}**/
wr.close();
rd.close();
} catch (Exception e) {
} -
Sanyix
őstag
Ja és még egy kis probléma van. Ha létrehozok egy új rekordot, a leutolsó módosítás nem jelenik meg a datatable-ban, csak akkor ha nyomok egy újratöltést, viszont ha kilistázom egy sima outputtextel a listát amiből a táblát is generálja, ott megjelenik az új objektum, de a jsp kódban alatt lévő datatableban meg nem. Ezt nemnagyon értem...
-
Sanyix
őstag
Hopp viszont érdekes dolgot csinál. Szóval ennek az alapja egy hibernates adatbáziskezelő programocska, ami már rég kész van, csak most így jsf-es felületet csinálok neki. Szóval az van, hogy a Mrbean nevű beanben mindenféle eljárás, elég egyszerűek, csak már meglévő adatbáziskezelő osztályból veszi ki az adatokat, indít eljárást, szóval csak egy közvetítő. Az már kész van egy ideje, hogy a jsf-es felületen lehet felvinni új rekordot, vagy frissíteni meglévőt.
Most az van, hogyha a valami műveletet hajtottam végre webes felületről, ha nyomok egy frissítés a böngészőben, újra végrehajtja az előző művelet. Most 3x rányomtam a frissítésre, és 3x rekordot hozott létre ugyanazokkal az adatokkal. Hogy lehetne azt elérni hogy ne lehessen frissíteni, vagya jsf mindig 0-ról induljon? -
Sanyix
őstag
Naggyonzseer
h datatablet kipróbáltam, bár picit átírtam, de műxik jól. Tomahawkot ma nemtudom, mert itt a munkahelyen paranoiás védelem van, pdf-en kívül semmit sem lehet letölteni, csak otthonról tudom emailben egy kis trükkel becsempészni. De mindegy, most ez is tökéletes
-
shev7
veterán
ha tablazatot akarsz megjeleniteni akkor h:datatable a baratod
Ezt probaltad? Most talaltam. A beannek legyen egy getStudents() metodusa ami arraylisttel ter vissza, az arrazlistben levo objektumoknak meg legyen getName() metodusa, akkor mukodni fog.
<f:view>
<h:form>
<:dataTable border="1" value="#{StudentBean.students}" var="line">
<h:column>
<h:outputText value="#{line.name}" />
</h:column>
</h:dataTable>
</h:form>
</f:view>MOD: de egy csomo jobban konnyebben hasznalhato library van, pld a tomahawk.
-
Sanyix
őstag
van ilyen f:selectitems, meg h:datatable. pl f.selecteditems-hez láttam egy példaprograomot, egy list<selectitem> bemenete, de persze kipróbálva nem működik, mert mindenre azt írja hogy arraylist (még arra is ami nem), és selectitemet vár el (aminek semmi érdelme, mert egyenként máshogy is be tudom rakni a lista elemeit...
-
Sanyix
őstag
Hi!
Egy olyan dolgot kellene csinálnom, hogy egy adatbázis táblát jelenítek meg jsf-el. Lekérdezési eljárások minden megvan, csak meg kéne jeleníteni. Tud valaki segíteni hogy oldhatom ezt meg?
-
szilu84
tag
sziasztok,
ha létrehozok egy képet az alábbi módon:
BufferedImage bi=null;
bi = new BufferedImage(640,480,BufferedImage.TYPE_3BYTE_BGR);
akkor ez hogy tudom lementni egy BMP fájlba?
üdv -
Lortech
addikt
GET és POST a HTTP GET ÉS HTTP POST metódusok. Annyi a dolgod, hogy a kapcsolat felállításnál / lekérésnél beállítod valamelyiket. A lényegi különbség, hogy GET esetén maga az URI tartalmazza a paramétert ( pl index.php?x=10), POST esetben pedig a lekérés törzsébe kell tenni. Ha a HttpURLConnection osztállyal csinálod, akkor ennek a setRequestMethod metódusával kell beállítanod.
Cookie kezelés annyi, hogy a lekérés fejlécében (header) kell elhelyezni a cookiet ("Cookie"), eredménynél pedig kiszedni a headerből ("Set-Cookie").
Hibakódot úgy kapod meg, hogy a lekérés küldése után a HttpURLConnection példányod getResponseCode() függvényét meghívod és megvizsgálod, hogy milyen HTTP válaszkódot ad vissza. A HttpURLConnection osztály tartalmazza az összes lehetséges válaszkódot statikus mezők formájában, pl: HttpURLConnection.HTTP_OK (200-as kód) azt jelenti, hogy teljesíthető volt a lekérés. -
pawee
tag
sziasztok
nekem kellene írnom egy kötprogit java-ban, persze nem szeretnék senkit megkérni erre, csak segítséget.
ez a feladat:
A programnak egy WEB-szerverhez kell csatlakoznia, és a felhasználó által kért oldalt kell lementenie egy file-ba. Az ismertebb hibakódok esetén magyarul írjuk ki a hibát. A program támogassa a GET és POST típusú paraméterek átadását, Cookie-k küldését/fogadását is.(+)a kérdés pedig az lenne, hogy a hibakódokat hogy kapom meg a szervertől?
milyen az a get post típusú param. átadás? -
loszerafin
senior tag
válasz
loszerafin #1250 üzenetére
Help->Check for Updates->Install JIndent
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- HP notebook topic
- Milyen monitort vegyek?
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- WLAN, WiFi, vezeték nélküli hálózat
- iPhone topik
- BestBuy topik
- One mobilszolgáltatások
- Házimozi haladó szinten
- Házimozi belépő szinten
- További aktív témák...
- Xiaomi Redmi A3 64GB Kártyafüggetlen, 1Év Garanciával
- 122 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 (48 hónap garancia!)
- BESZÁMÍTÁS! HP ZBook 15 G6 munkaállomás - i7 9850H 16GB DDR4 RAM 512GB SSD Quadro T2000 4GB WIN10
- Amazon Kindle 10th Generation ébresztős tok
- Honor 400 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest