- Bemutatkoztak a be quiet! Light Base 500 szériás, kábeleket rejtő házai
- A Chieftec néhány terméke fehér köntöst öltött
- Sokkal drágább lett az „olcsó” Tesla, mint várták
- Egy fontos tényező akadályozhatja a csúcstechnológiás chipgyártást az USA-ban?
- Visszatért a mítosz, a legenda, a világ leghasznosabb terméke!
- HP notebook topic
- Androidos tablet topic
- Milyen joysticket vegyek?
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- 5.1, 7.1 és gamer fejhallgatók
- Amlogic S905, S912 processzoros készülékek
- A Synology visszatáncolt a kötelező saját márkás HDD-től
- Apple MacBook
- Videós, mozgóképes topik
Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
Ú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 -
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?:))
- Lenovo ThinkPad L15 Gen 1 i5 / 16GB RAM / 256GB SSD / FHD IPS / 4G modem
- Lenovo ThinkPad E15 Gen 3 Ryzen 5 / 16GB RAM / 256GB SSD / FHD IPS / 1GB dedikált VGA
- Lenovo ThinkPad X1 Yoga Gen 3 i7 / 16GB / 512GB SSD / 2 az 1-ben érintőkijelző / WQHD IPS
- Lenovo ThinkPad T14s i7 / 32 GB RAM / 256 GB SSD / Full HD IPS
- HP EliteBook 650 G9 12. generációs i5 / 16GB RAM / 256GB SSD / FHD
- 2 db (130 / 131) - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080
- Ultimate előfizetés új fiókra akár 4166 Ft/hó áron! Azonnali, automatizált aktiválással, csak Nálam!
- MOBILNETES! Lenovo ThinkPad X13 Gen 2 i5-1145G7 16GB 256GB FHD+ TouchScreen 100% sRGB 1 év garancia
- Apple iPhone 13 mini Red Kompakt méret, nagy teljesítmény 256 GB Használt,szép állapot, 100%
- Dell PA12 43NY4 65W utángyártott töltő
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest