Hirdetés
- Tudjuk, de nem tesszük: a magyarok többsége nem törődik adatai védelmével
- Mesébe illő csodakábelt tervezett a GeForce-ok leégése ellen a Segotep?
- Irodát kért, de gyárat kapott Elon Musk a Samsungtól
- Nyílt forráskódú lett a legegyszerűbben használható AI tartalomgeneráló
- Hazavághatja a MicroSD memóriakártyák piacát a Biwin-féle Mini SSD
- Rogyásig pakolható a Cooler Master Cosmos szériás csúcsháza
- A popóalávaló: DXRacer Drifting gamer szék tesztje
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Milyen egeret válasszak?
- Apple asztali gépek
- Több száz játékban kezdi meg karrierjét az FSR Redstone
- Bluetooth hangszórók
- El sem merte árulni két új SSD-családjának árazását a Kioxia
- AMD vs. INTEL vs. NVIDIA
- Amlogic S905, S912 processzoros készülékek
Ú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?:))
- Rogyásig pakolható a Cooler Master Cosmos szériás csúcsháza
- DOOM - The Dark Ages
- Motorola Edge 50 Neo - az egyensúly gyengesége
- A popóalávaló: DXRacer Drifting gamer szék tesztje
- Kerékpárosok, bringások ide!
- exHWSW - Értünk mindenhez IS
- Assassin's Creed: Valhalla
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Filmvilág
- Poco F5 - pokolian jó ajánlat
- További aktív témák...
- Xiaomi 13 256/8GB 2024
- Karácsonyi Akció ! PHILIPS Ambilight 48OLED759/12 4K OLED Smart 120Hz Gaming TV
- Felsőkategóriás AMD Gamer PC-Számítógép! Beszámítás! R7 9800X3D / 9070XT / 32GB DDR5 / 2TB SSD!
- Gamer PC-Számítógép! Csere-Beszámítás! I7 10700 / 32GB DDR4 / RX 6700XT 12GB / 512 SSD + 1TB HDD
- bontott működő alkatrészek
- Xiaomi 11 Lite 5G NE 256GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA! Épített KomPhone Ultra 9 285K 32/64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 12 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3853
- Dupla Lencsés PTZ Biztonsági Kamera 2.4/5G Dual Band Wifi Kamera+128gb mermoria kártya
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest






