- Azonnali fotós kérdések órája
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Milyen házat vegyek?
- Fujifilm X
- Nvidia GPU-k jövője - amit tudni vélünk
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Házimozi belépő szinten
- Milyen billentyűzetet vegyek?
- Monitor hiba topik
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
Ú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
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Azonnali fotós kérdések órája
- Sokat fejlődött az Amazfit T-Rex
- BestBuy topik
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Borotva, szakállnyíró, szakállvágó topic
- One otthoni szolgáltatások (TV, internet, telefon)
- Redmi Watch 5 - formás, de egyszerű
- Kerékpárosok, bringások ide!
- Mibe tegyem a megtakarításaimat?
- Synology NAS
- További aktív témák...
- Makulátlan, új állapotú Garmin Forerunner 255 music fekete
- Szinte új állapotú Samsung Galaxy A54 5G 6/128GB
- Apple iPhone 13Pro 128GB Kártyafüggetlen 1Év Garanciával
- Garmin Fenix 8 Amoled 51mm Sapphire Carbon Gray DLC - Használt, karcmentes
- Nitro ANV15-51 15.6" FHD IPS i5-13420H RTX 4050 16GB 512GB NVMe magyar vbill ujjlolv gar
- Bomba ár! Lenovo ThinkPad X390: i5-G8 I 16GB I 256GB SSD I 13,3" FHD Touch I Cam I W11 I Gari!
- Xiaomi Redmi Note 13 256GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Lenovo IdeaPad 330S-15IKB - i5-8G I 8GB I 256SSD I 15,6" FHD I HDMI I Cam I W11 I Gari!
- Telefon felvásárlás!! Samsung Galaxy A12/Samsung Galaxy A22/Samsung Galaxy A32/Samsung Galaxy A52
- BESZÁMÍTÁS! MSI B550 R7 5700X 32GB DDR4 500GB SSD RTX 3070 8GB ZALMAN Z1 Plus Be quiet! 650W
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest