Hirdetés
- Mindenkinél több és erősebb AI gyorsítót ígér Elon Musk
- M.2 csatlakozók terén (is) jónak ígérkezik az MSI közelgő AMD-s alaplapja
- Kivégezheti a kisebb VGA-gyártókat az NVIDIA döntése
- Szinte a semmiből robbanna be az 1,4 nm-es eljárásával a Rapidus
- Félszáz terabájtos HDD-k előtt nyitotta ki az ajtót a Seagate
Új hozzászólás Aktív témák
-
btotyi
tag
Milyen szervert használsz ? Az alkalmazás szerverek általában tudnak autentikációt kezelni.
Ez ugyan geronimo de kiindulásnak jó lehet.
A lényeg az, hogy az index.jsp-d a védett területen (security-realm)-on kívül helyezkedik el és vagy linkkel vagy forward-al átírányít a védett területre. Erre a szerver bejelentkezteti a usert ha az ok továbbdobja a kívánt oldalra, ha nem akkor elutasítja. A védett területen belül vagy sütivel vagy url rewrite-al ellenőrzi, hogy az adott felhasználó már bejelentkezett-e ?
-
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.
-
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();
} -
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(); -
btotyi
tag
Ha jobban megnézed a példát az elején egyszerűen létrehoz egy Thread leszármazottat Szal néven. A thread nek van egy start, stop, terminate és ami neked fontos egy run metódusa. Ebben aztán azt valósítasz meg ami neked tetszik. Persze erőforrásokhoz való hozzáféréskor észnél kell lenni mert könnyű deadlock-ot előidézni, de ha csak számolgatod a páros/páratlan számokat akkor nincs baj. Tehát csinálhatsz két(n) thread leszármazottat és a run metódusukban elvégzed a kívánt feladatot. Persze futtatáshoz a megfelelő típusút kell létrehozni.
[Szerkesztve] -
btotyi
tag
Egyszerűen semmi különös.A példában simán visszakapsz egy Complex osztályt. Igazából egy Complex osztályt pontosabban egy IComplex interfészt implementáló osztályt. Ha Complex típusú lenne a változó akkor csak Complex típusú példányt adhatnál át, IComplex-ként viszont bármilyen olyan osztályt ami implementálja az IComplex interfészt. Ennek fényében a második fele a kérdésednek egyértelmű.
Egy kis magyarázat :[link] -
btotyi
tag
Például így :
package test;
class Szal extends java.lang.Thread {
volatile static boolean Stop = false;
// Primordial thread executes main()
public static void main(String args[]) throws InterruptedException {
// Create and start 2 threads
Szal thread1 = new Szal();
thread1.setPriority(1); // 1st thread at 1th non-RT priority
Szal thread2 = new Szal();
thread2.setPriority(1); // 2nd thread at 1th non-RT priority
thread1.start(); // start 1st thread to execute run()
thread2.start(); // start 2nd thread to execute run()
// Sleep for 10 seconds, then tell the threads to terminate
Thread.sleep(10 * 1000);
Stop = true;
}
public void run() { // Created threads execute this method
System.out.println(''Created thread'');
int count = 0;
for (; Stop != true;) { // continue until asked to stop
count++;
Thread.yield(); // yield to other thread
}
System.out.println(''Thread terminates. Loop count is '' + count);
}
}
forrás:[link] -
btotyi
tag
válasz
Corvin84
#665
üzenetére
Mintha egy kicsit kapkodnál

A tömbös megoldásnál foglalsz helyet a tömbnek ? Ráadásul mindig a 100 elem helyére akarsz írni.
A Vector objektumokat tud index szerint tárolni .
Erősen ajánlott a help és valami alapszintű java könyv olvasgatása.
Az első példa tömbt tölt, a második egy vectort tölt/listáz ki.
int[] tomb = new int[100];
for (int i = 0; i < 10; i++) {
tomb[i] = i * 2;
}
Vector v = new Vector(100);
for (int i = 0; i < 10; i++) {
v.add(i, new Integer(i * 2));
}
for (int i = 0; i < 10; i++) {
System.out.println(v.get(i));
}
[Szerkesztve] -
btotyi
tag
válasz
Corvin84
#661
üzenetére
Kicsit fáradt vagyok, hogy jobban átnézzem. Lehetne optimálisabb és szebb kódot írni de most csak ennyire futja. Helyenként kicsit elbonyolítod a dolgot. Boolean értéket nem vizsgálunk true vagy false értékre mert önmagában kiértékelhető. A bemeneti értékek ellnőrzése szükséges mert első lefutáskor nem tartalmaz a kérés paramétert.
<%@ page language=''java'' pageEncoding=''ISO-8859-1''%>
<!DOCTYPE HTML PUBLIC ''-//W3C//DTD HTML 4.01 Transitional//EN''>
<html>
<head>
<title>My JSP 'prim3.jsp' starting page</title>
</head>
<body bgcolor=''white''>
<h1>
Prímszám generálás
</h1>
<form action=''prim3.jsp'' method=''post''>
<input type=''text'' name=''kezdet''>
-tól
<br>
<input type=''text'' name=''veg''>
-ig
<br>
<input type=''submit'' value=''elkuld''>
</form>
<hr>
<%
String ks = request.getParameter(''kezdet'');
String vs = request.getParameter(''veg'');
if (ks != null && vs != null) {
int k = Integer.parseInt(ks);
int v = Integer.parseInt(vs);
for (int i = k; i < v; i++) {
boolean nemprim = false;
for (int j = 2; j < (i - 1); j++) {
if ((i % j) == 0) {
nemprim = true;
break;
}
}
if (!nemprim) {
out.println(i + ''. primszam'' + ''<br>'');
}
}
}
%>
</body>
</html>
[Szerkesztve]
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Újszerű Lenovo Ideapad Gaming 3 15ACH6 eladó!
- Acer 15.6",FullHD,core i3 8145U(4x3,9Ghz)MX230 2/4GB DDR5VGA,8-20GB RAM,SSD,szép állapot,Win.11
- Eladó NAS HDD - WD Red 8TB 3.5" 5400rpm 256MB SATA3 (WD80EFAX)
- 2év Garancia,Lenovo Slim 3,i5 12450H(12x4,4Ghz)15,6"FullHD IPS,Magyar vil.bill,8-16GBDDR5 RAM,512SSD
- AJAZZ AK820 PRO Billentyűzet
- Apple iPhone 13 /128GB /Kártyafüggetlen / 12 Hó Garancia / akku: 85%
- Apple iPhone 13 / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku: 100%
- Lenovo Thinkbook 16 G6 WUXGA IPS Ryzen7 7730U 16GB 512GB SSD Radeon RX Vega8 Win11 Pro Garancia
- Azonnali készpénzes Apple Macbook Air felvásárlás személyesen / csomagküldéssel korrekt áron
- ÁRGARANCIA! Épített KomPhone Ultra 7 265KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi

vagy nem értem ????


