Hirdetés
- Meggyi001: Mágneses vízálló GPS nyomkövető - 1 hetes felhasználói vélemény
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- bambano: Bambanő háza tája
- Luck Dragon: Asszociációs játék. :)
- hcl: GPT diszk kisebbre klónozása
- sziku69: Fűzzük össze a szavakat :)
- Viber: ingyen telefonálás a mobilodon
- sziku69: Szólánc.
- D@reeo: OlvasóMester - vágólap felolvasó alkalmazás
- Mustaros: Torrent jó dolog, de már nem használom.
Új hozzászólás Aktív témák
-
Zsoxx
őstag
válasz
artiny
#11331
üzenetére
Kismillió ilyet találsz a Youtube-on, akár magyarul is.
https://www.informatikatanarok.hu/erettsegi-feladatok/emelt-szintu-informatika-erettsegi-feladatok-es-megoldasok -
skoda12
aktív tag
Na a kovetkezo a helyzet. Elolvastam a kodot is, amit fentebb linkeltel es tobb problema is van.
Eloszor is ugyanarrol a threadrol irsz es olvasol adatbazist, amelyikrol GUI elemeket modositasz. A GUI tipikusan nem thread safe, a hozza tartozo elemeket (buttonok pl) a GUI threaden kell modositani. Ezen a threaden pedig nem kellene blokkolo muveleteket pl DB kezelest inditani, mert megakad az egesz felulet tole.
A masik, hogy a ResultSet-en azutan hivod meg a next() metodust miutan meghivtad a close() metodust (executeUpdate mar nem ad vissza uj ResultSetet igy a regi lezartat fogod hasznalni tovabb) es ezert kapsz "ResultSet not open. Operation 'next' not permitted." hibauzenetet.
A harmadik pedig, hogy konnyebb dolgod lenne, ha a string osszefuzogetes helyett PreparedStatementet hasznalnal, ha mar mindenkepp JDBC-vel kell megoldani a feladatot es nem hasznalhatsz valami ORM frameworkot.
-
-
TBG
senior tag
Tehát. Itt ez a remek kód.
try {
rs.moveToInsertRow();
rs.updateInt("ID", newID);
rs.updateString("First_Name", first);
rs.updateString("Last_Name", last);
rs.updateString("Job_Title", job);
rs.insertRow();
stmt.close();
rs.close();
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String sql = "SELECT * FROM Workers";
rs = stmt.executeQuery(sql);Ehelyett inkább: (nem teljes és nem is ismerem a táblastruktúrát)
String insertSql = "INSERT INTO Workers(id,firstname) VALUES("+newID+","'"+firs+"'");
stmt.executeUpdate(insertSql); -
TBG
senior tag
A metódus elé tegyél egy annotációt:
@SuppressWarnings("unchecked")
public String toXml() {
StringBuilder xml = new StringBuilder();
if ( this.emp!=null && !this.emp.isEmpty() ) {
for (Employee employee: this.emp) {
// employee to xml, ahogy tetszik.
// TransformerFactory tf = TransformerFactory.newInstance();
// Transformer t = tf.newTransformer();
// DOMSource source = new DOMSource(doc);
// StreamResult result = new StreamResult(new File("xmldoc.xml"));
// t.transform(source, result);
// return result.toString();
xml.append(employee.toXml());
}
}
return xml.toString();
} -
TBG
senior tag
Ezt próbáld meg!
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
DOMSource source = new DOMSource(doc);
Writer outWriter = new StringWriter();
StreamResult result = new StreamResult( outWriter );
t.transform(source, result);
StringBuffer sb = outWriter .getBuffer();
return sb.toString(); -
artiny
őstag
TBG:Helo...gondolom mar az idegeidre megyek...
De legyszi meg ezt,...
A employee osztalyban a toXml metodus az ugy jo lessz,vagy a return null az nem lessz jo?
return result.toString(); nem fogadja el ahol van most a return null;Az hogy nm itt rakom fajlba az xml-t hanem majd az orej osztalyban,azt a toXml metodusban kene,...
Hogy beillesztem ?
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("xmldoc.xml"));
t.transform(source, result);
return result.toString(); -
TBG
senior tag
Igen, de legyen a metódusodnak visszatérési értéke...monduk egy String.
Tehát
public void toXML()
helyett
public String toXML()
A végén meg a
StreamResult result = new StreamResult(new File("xmldoc.xml"));
t.transform(source, result);helyett
StreamResult result = new StreamResult(new File("xmldoc.xml"));
t.transform(source, result);
return result.toString();Azt hiszem, hogy a StreamResult-nak van toString() metódusa értelmesen.
de a xml.append(employee.toXml()); meg mindig piros felkiatojel

Igen, mert String-et vár, de Te voiddal térsz vissza. Ezt javítja az, amit fent rögöftem

Ja és még valami, ne itt rakd az XML-t fájlba, hanem az oraj osztályban. -
TBG
senior tag
Hmm. Azért dob java.lang.UnsupportedOperationException: Not supported yet. hibát, mert a toXml() metódusod ezt tartalmazza:
Object toXml() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}Tehát qrva jól működik.
DE!! Ez csak egy generált kód..neked ezt kell tartalommal feltöltened!
Valami ilyesmivel:public String toXml() {
String startElement="<element>";
String endElement="</element>";
String startNameElement = " <name>";
String endNameElement = " </name>";
return startElement+"\n"+startNameElement+this.name+endNameElement+"\n"+endElement;
}Persze, nem ilyen primitív módszerekkel, hanem pl. Sax,DOM...akármi...
-
artiny
őstag
Lejart az ido a szerkeszteshez.
ezt hozta letre az Employee ban.
Object toXml() {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}mainben ahogy meghivom:
Employee e1 = new Employee("Johny", "881105/4323", 1);
orej zamestnanec = new orej();
zamestnanec.pridajEmp(e1);
zamestnanec.toXml();de nem fut le:
Exception in thread "main" java.lang.UnsupportedOperationException: Not supported yet.
at bikeshop.Employee.toXml(Employee.java:66)
at bikeshop.orej.toXml(orej.java:171)
at bikeshop.BikeShop.main(BikeShop.java:96)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds) -
TBG
senior tag
Az orej-ben, jelentsen bármit is

Írsz egy metódust, valami ilyesmit:
public String toXml() {
StringBuilder xml = new StringBuilder();
if ( this.emp!=null && !this.emp.isEmpty() ) {
for (Employee employee: this.emp) {
// employee to xml, ahogy tetszik.
xml.append(employee.toXml());
}
}
return xml.toString();
} -
TBG
senior tag
Gyakorlatilag a Java fejlesztésnek az egyik alapja, hogy addig nem kell semmit megírni, amíg meg nem győződsz róla, hogy nem írta-e meg valaki más már

Szerintem olyat alapból nem lehet. Az ArrayList egy konténer, ami különféle objektumokat tárol. Az objektumokhoz lehet XML parsert/marshallert/serializert/ahogy tetszik írni, ami végigmegy az ArrayList elemein és azokat egy XML-be írja bele. Mondjuk ha az ArrayList-ben String-ek vannak:
<element>
<value>egy</value>
</element>
<element>
<value>ketto</value>
</element>
<element>
<value>harom</value>
</element>
<element>
<value>negy</value>
</element>Ahol is az <element></element> reprezentál 1 darab ArrayList elemet. Azt, hogy miként rakod XML-be, a saját XML makered szabályozza.
-
Karma
félisten
-
-
TBG
senior tag
Szóval, az, hogy a Netbeans-ben hogy kell csinálni, nagyon rossz irány. Netbeans-tól függetlenül is működne kell az ilyen dolgoknak.
Ha van SQL scripted, akkor az egyik irány lehet, hogy felparseolod, mondjuk ';' delimiterrel, majd egyesével szépen lefuttatod az SQL parancsokat, amik benne vannak.
Pl:
CREATE DATABASE test;
CREATE TABLE table1(id int, name varchar(12));Ez konkrétan két utasítást fog egymás után végrehajtani. Nyilvánvalóan adatbázisszervertől függ a pontos szintaktika.
Aztán ha megvan, akkor lehet mindenféle Java-s okosságokat csinálni.
Itt van példakód is: [link]
-
Jim-Y
veterán
Egy óráig él a link.
-
WonderCSabo
félisten
Először is javaslom, hogy tartsd be a java névkonvenciókat. Másodszor, ne használj publikus változókat, ez felrúgja az OOP egyik legfontosabb alapelvét, az enkapszulációt. Használj helyete private/protected változókat, és ha kell készíts hozzájuk publikus getter/setter metódusokat.
Kérdésedre válaszolva:
Az örökölt típusok alatt örökölt tagváltozókat értesz? A típus az egész mást jelent. Amennyiben public, package private, vagy protectedláthatósága van az ősben lévő változóknak, akkor simán eléred őket a gyerekben csak a nevük leírásával. Pl.public void methodInDerivedClass() {
System.out.println("inherited variable: " + inheritedVariable);
}Ahol ez a metódus a gyerek osztályban, az inheritedVariable pedig a szülő osztályban van.
Ez volt a kérdésed?
-
pvt.peter
őstag
elég sokféleképpen meglehet oldani
Obj.java
package bikeshop;
public class Obj {
private final int ordertime;
private final boolean ordertype;
private int price;
public Obj(int ordertime, boolean ordertype) {
this.ordertime = ordertime;
this.ordertype = ordertype;
this.price = (this.ordertime >= 1 && this.ordertime <= 5) ? 10 : 30;
this.price += this.ordertype ? 10 : 5;
}
public int getPrice() {
return this.price;
}
}Main.java
package bikeshop;
public class Main {
public static void main(String[] args) {
Obj obj = new Obj(5, false);
System.out.println("Price: " + obj.getPrice());
}
} -
Taoharcos
aktív tag
Először a Java 24 óra az egy kicsit olyan játékosan mutatja be a dolgokat, utána a Nagy Gusztáv könyv. Később pedig valami komolyabb. Persze ha jól tudsz angolul (sajnos én nem), akkor sokkal több lehetőség adódik (sok videó is van fennt csak angolul).
Persze kérdés az is tudsz-e valamilyen nyelven jól programozni, mert ha igen, hagyd ki a Java 24 óra -t.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- OnePlus 15 - van plusz energia
- Tesla topik
- Gyúrósok ide!
- Milyen processzort vegyek?
- 50 év után kilőtt négy űrhajós a Holdra
- BestBuy topik
- Meggyi001: Mágneses vízálló GPS nyomkövető - 1 hetes felhasználói vélemény
- HiFi műszaki szemmel - sztereó hangrendszerek
- Peugeot, Citroën topik
- Kötelező frissítésnek számít a Microsoft legújabb csomagja a Windows 11-hez
- További aktív témák...
- ÚJ ASUS B550 AMD RYZEN 5 5600X GAMER MAX PC 32Gb RAM 512GB SSD NVIDIA RTX 3070TI 8GB DDR6 2ÉV GAR!
- Razer Blade 15 Advanced (2019) Rtx 2080 OLED Touch 4K ! IR kamera - újszerű
- Samsung S24 Ultra Titanium black 12/256 --Új--
- ZOOM PodTrak P8 - USB-C Podcast keverő
- Lenovo Legion 7 (16ACHg6) RTX 3080 16GB VRAM, 32GB RAM
- Mini Pc HP ProDesk 600 G2 / G4 / G5 // 6-9. gen // i3 / i5
- iPhone 13 mini 128GB 88% (1év Garancia)
- Apple iPhone 13 / 128GB / Kártyafüggetlen / 12Hó garancia / Akku:100%
- Apple iPhone 14 Plus 128GB, Kártyafüggetlen, 1 Év Garanciával
- 27% - HEIGAOLA MiniPC - / 10.1" Érintőképernyő! Intel J4125 / 8GB RAM /128GB SSD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




