- Fotók, videók mobillal
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- OnePlus 15R - régen minden jobb volt
- Minden a BlackBerry telefonokról és rendszerről
- Milyen okostelefont vegyek?
- Huawei Watch GT 4 - kerek karék
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Nokia N8 - vajon elég lesz-e?
- Megtartotta Európában a 7500 mAh-t az Oppo
Új hozzászólás Aktív témák
-
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
}
}
}
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Fotók, videók mobillal
- Asustor NAS
- Építő/felújító topik
- Sweet.tv - internetes TV
- Budapest és környéke adok-veszek-beszélgetek
- Autós topik
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- A fociról könnyedén, egy baráti társaságban
- OnePlus 15R - régen minden jobb volt
- További aktív témák...
- Eladó pár napos Apple Watch SE 3 GPS 44mm Midnight - 2 év iCentre garancia!
- Series/Elite V2 kontroller analóg cseréje GuliKit 720 TMR érzékelősre, 1 év garancia!!!
- PS5 / EDGE kontroller analóg cseréje GuliKit 720 TMR érzékelősre, 1 év garancia!!!
- MSI Prestige A16 AI+ Ryzen AI 9, 32GB DDR5 7500, QHD+ 165Hz csúcskategóriás ultralaptop!
- -ÚJ,2 ÉV GAR- GAMER PC: RYZEN 5 4500-5600X +RTX 3050/4070 +16-64GB DDR4! GAR/SZÁMLA! 70 féle ház!
- BESZÁMÍTÁS! Apple MacBook Air 15 M4 32GB RAM 1TB SSD notebook garanciával hibátlan működéssel
- Azonnali készpénzes AMD Ryzen 1xxx 2xxx 3xxx 5xxx processzor felvásárlás személyesen / csomagküldés
- Apple iPhone 15 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer PC-Számítógép! Csere-Beszámítás! R7 5700 / RTX 2080Ti 11GB / 16GB DDR4 / 1TB SSD!
- iPhone 13 Pro 128GB 100% (1év Garancia)
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs




