- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- Fotók, videók mobillal
- Huawei Mate X6 - keleti oldal, nyugati oldal
- Telekom mobilszolgáltatások
- Mobil flották
- iPhone topik
- Nem lett arányos a fogyókúra
- Ilyen lesz a Fairphone 6
- Redmi Note 9 Pro [joyeuse]
Új hozzászólás Aktív témák
-
Zsoxx
senior tag
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
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- LEGO klub
- Egy tápkábel négy vezetékét elvágva is működik a GeForce RTX 5090
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Milyen billentyűzetet vegyek?
- Az AMD-vel tervezi a következő generációs Xboxokat a Microsoft
- OLED, Mini-LED, IPS, VA, TN - melyik panelt válaszd 2025-ben?
- Milyen videókártyát?
- Okos Otthon / Smart Home
- 5.1, 7.1 és gamer fejhallgatók
- További aktív témák...
- Eladó konfig! Ryzen 7 7800X3D 2TB SSD 64GB DDR5 RX9070XT 16GB!
- Új, makulátlan állapotú Samsung Galaxy Buds FE, fehér, fél év garancia
- Új, makulátlan állapotú Samsung Galaxy Watch7 44mm ezüst, 2 év garancia
- Új, makulátlan állapotú Samsung Z Fold 6 256GB Tengerészkék, független, 2 év garancia
- Használt TP-Link Deco M4 - AC1200 Router (Mesh-ként is használható)
- Xiaomi Redmi 12 Pro 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Wilbur Smith könyvek (15 db) egyben
- Bomba ár! Dell Latitude 7390 2in1 - i7-8G I 16GB I 256SSD I 13,3"FHD Touch I HDMI I Cam I W11 I Gar
- ÁRGARANCIA! Épített KomPhone Ryzen 7 5800X 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Csere-Beszámítás! Asus Tuf Gamer laptop! R7 3750H / GTX 1650 / 16GB DDR4 / 500GB SSD
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest