Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Jdbc MySQL pomoc?

[es] :: Java :: Jdbc MySQL pomoc?

Strane: 1 2

[ Pregleda: 4430 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Jdbc MySQL pomoc?14.08.2012. u 18:20 - pre 141 meseci
Posle nesto vise od godinu dana C#.net-a presao sam na Javu, evo vec 2 meseca, skontao sam da je mnoogo stvari apsolutno isto ili slicno i da se mnoogo brzo uci drugi jezik, pa tako i JDBC, ono sto mi je malo cudno jeste uloga ovog jdbc driver-a, takodje sam primetio da je JDBC jednostavniji od ADO.net-a koji cini mi se ima mnogo vise ADO.net klasa...

Ono sto hocu je da mi neko ispise najjednostavniji primer ubacivanja podataka iz tekstfilda ili stringa u bazu...

Ja sam nesto ovako pokusao, ali mi izbacuje Exception sa porukom da je problem u jdbc driver-u?

Code:

public void actionPerformed(ActionEvent arg0) 
{
    Connection con = null;
    Statement st = null;
try {
           Class.forName("com.mysql.jdbc.Driver"); //ovo me malo buni i tu pokazuje gresku
    con = DriverManager.getConnection("jdbc:mysql://localhost/mojasema","root","123");
    st = con.createStatement(); 
           String sql = "insert into ljudi(Ime_Prezime,Maticni_Broj)values("+textField.getText()+","+textField_1.getText()+")";
    st.executeQuery(sql); 
    JOptionPane.showMessageDialog(null, "Uspesno ubaceno!");
    } catch (ClassNotFoundException e) {
    JOptionPane.showMessageDialog(null, e);
    } catch (SQLException e) {
    JOptionPane.showMessageDialog(null,e);
      }
}


Ja sam ovde u con stringu isao ovako

("ime server//naziv baze,user name, password")
Da nije mozda problem u portu, jer ja koristim port 3307, a ne default 3306... to sam u visual studiu uvek morao menjati..

[Ovu poruku je menjao Boyka dana 15.08.2012. u 10:03 GMT+1]
 
Odgovor na temu

nemnesic
nemnesic
Software Developer
Vranje Florida

Moderator
Član broj: 44355
Poruke: 802
*.ga.at.cox.net.



+64 Profil

icon Re: Jdbc MySQL pomoc?14.08.2012. u 18:50 - pre 141 meseci
copy/paste celu Exception.
 
Odgovor na temu

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Jdbc MySQL pomoc?14.08.2012. u 21:10 - pre 141 meseci
Citat:
nemnesic:
copy/paste celu Exception.


? Zasto bih kopirao izuzetke?
 
Odgovor na temu

nemnesic
nemnesic
Software Developer
Vranje Florida

Moderator
Član broj: 44355
Poruke: 802
*.ga.at.cox.net.



+64 Profil

icon Re: Jdbc MySQL pomoc?14.08.2012. u 21:17 - pre 141 meseci
?...da bi znao koko da ti pomognem...jer kazes da ti " izbacuje Exception sa porukom da je problem u jdbc driver-u" a to moze da bude zbog 100 razloga
 
Odgovor na temu

megabaja
duvach guma na kontejnerima
Zemun

Član broj: 71657
Poruke: 7
*.dynamic.isp.telekom.rs.



+1 Profil

icon Re: Jdbc MySQL pomoc?14.08.2012. u 21:41 - pre 141 meseci
Jedan bivši kolega kaže: stacktrace or it didn't happen :)
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: Jdbc MySQL pomoc?15.08.2012. u 07:28 - pre 141 meseci
Vjerovatno ti jar file sa mysql driver-om nije na classpath-u. Ali sve će ti biti jasno ako svoj kod zamjeniš ovim i pratiš console output.

Code:

public void actionPerformed(ActionEvent arg0) {
    Connection con = null;
    Statement st = null;
    try {
        Class.forName("com.mysql.jdbc.Driver"); //ovo me malo buni i tu pokazuje gresku
        con = DriverManager.getConnection("jdbc:mysql://localhost/mojasema","root","123");
        st = con.createStatement(); 
        String sql = "insert into ljudi(Ime_Prezime,Maticni_Broj)values("+textField.getText()+","+textField_1.getText()+")";
        st.executeQuery(sql); 
        JOptionPane.showMessageDialog(null, "Uspesno ubaceno!");
    } catch (Exception e) {
        e.printStackTrace();
        JOptionPane.showMessageDialog(null, e);
    }
}
 
Odgovor na temu

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Jdbc MySQL pomoc?15.08.2012. u 08:56 - pre 141 meseci
Console Exception:
Code:

           java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at JDBC_vezba$2.actionPerformed(JDBC_vezba.java:60)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$000(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)


Koliko vidim putanja do baze nije ispravna
 
Odgovor na temu

Dragan
Dragan Gajic
Software Architect
Novi Sad

Član broj: 1596
Poruke: 76
82.117.202.*



+15 Profil

icon Re: Jdbc MySQL pomoc?15.08.2012. u 10:50 - pre 141 meseci
Kao sto ti je neko vec rekao, fali ti MySQL driver (jar) ili nije na classpath-u. Moras da ga skines odnekud i stavis na classpath, tj. objasnis gde se nalazi.

Ova linija u stack trace-u (exception) ti to kaze:
Citat:
java.lang.ClassNotFoundException: com.mysql.jdbc.Drive

"The most likely way for the world to be destroyed, most experts agree, is by
accident. That's where we come in; we're computer professionals. We cause
accidents." - Nathaniel Borenstein
 
Odgovor na temu

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Jdbc MySQL pomoc?15.08.2012. u 12:24 - pre 141 meseci
Citat:
Dragan:
Kao sto ti je neko vec rekao, fali ti MySQL driver (jar) ili nije na classpath-u. Moras da ga skines odnekud i stavis na classpath, tj. objasnis gde se nalazi.

Ova linija u stack trace-u (exception) ti to kaze:
Citat:
java.lang.ClassNotFoundException: com.mysql.jdbc.Drive


Aaa konektor mi teba jel? Ovo > http://dev.mysql.com/downloads/connector/j/

trebao mi je i za c#, sad cu da probam...
 
Odgovor na temu

kljunovi

Član broj: 220483
Poruke: 29



+1 Profil

icon Re: Jdbc MySQL pomoc?16.08.2012. u 09:24 - pre 141 meseci

Pored nedostata drajvera moraces da obratis kako ubacujes stvari u bazu. Da razliujes tipove podataka.
npr ako su ti Ime_Prezime i Maticni_Broj verdnosti stringa moraces da string vrednsoti stavis izmedju ' '
"insert into ljudi(Ime_Prezime,Maticni_Broj)values("+ "'"+ textField.getText()+"'"+","+"'"+textField_1.getText()+"'"+")";

drugi je meni laksi da koristis PreparedStatement, eno ti neki primer

public boolean addResultMetrics(Connection conn, String recordId, String metricsId, String schemeId, String classId, Integer year, Double count, Double fraction) {
try {
PreparedStatement stmt = conn
.prepareStatement("insert into MARC21RECORD_METRICS (RECORDID, CFMETRICSID, CFCLASSSCHEMEID, CFCLASSID, CFYEAR, CFCOUNT, CFFRACTION) values (?, ?, ?, ?, ?, ?, ?)");
stmt.setString(1, recordId);
stmt.setString(2, metricsId);
stmt.setString(3, schemeId);
stmt.setString(4, classId);
stmt.setInt(5, year);
stmt.setDouble(6, count);
if(fraction != null)
stmt.setDouble(7, fraction);
else
stmt.setNull(7, Types.DOUBLE);


stmt.executeUpdate();
stmt.close();

return true;
} catch (SQLException e) {
log.fatal(e);
log.fatal("Cannot add resultMetrics: " + recordId + " and " + metricsId);
}
return false;
}
 
Odgovor na temu

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Jdbc MySQL pomoc?16.08.2012. u 10:46 - pre 141 meseci
Provalio sam za taj PreparedStatement radi veoma slično kao u C#-u com.Parameters.AddWithValue("ime kolone",odakle ubacuje, textbox);
 
Odgovor na temu

dule_ns
Novi Sad

Član broj: 123863
Poruke: 257
194.247.212.*



+690 Profil

icon Re: Jdbc MySQL pomoc?16.08.2012. u 11:31 - pre 141 meseci
Inače, ovo:

Code:
String sql = "insert into ljudi(Ime_Prezime,Maticni_Broj)values("+textField.getText()+","+textField_1.getText()+")";


nemoj nikad ni slučajno da radiš. Ni kod inserta, ni kod selecta, nikad.

Nego ako koristiš JDBC onda preparedstatemet + postavljanje parametara.
 
Odgovor na temu

ByteCode
Byte Code
Beograd

Član broj: 298867
Poruke: 21
...cust-194.exponential-e.net.

Sajt: speedy-order.com


+22 Profil

icon Re: Jdbc MySQL pomoc?16.08.2012. u 13:39 - pre 141 meseci
Citat:
dule_ns:
Inače, ovo:

Code:
String sql = "insert into ljudi(Ime_Prezime,Maticni_Broj)values("+textField.getText()+","+textField_1.getText()+")";


nemoj nikad ni slučajno da radiš. Ni kod inserta, ni kod selecta, nikad.

Nego ako koristiš JDBC onda preparedstatemet + postavljanje parametara.


Sve je to lepo, samo kazi coveku zasto nikada. Elem u pitanju je mogucnost da neko naprvi SQL inject napad, znaci onaj textField.getText() vrati string tipa
Code:
"); drop table ljudi ; --"


A moze da bude bilo kakvo vrsljanje po bazi.

Druga stvar na koju bi ti skrenuo paznju jeste da ta vrsljanja sa bazom ne radis u event handleru zato sto to blokira GUI, ako se desi situacija tipa conection time out cela aplikacija se zamrzla kompletno. Za takve stvari uzmi pogledaj SwingWorker.
 
Odgovor na temu

dule_ns
Novi Sad

Član broj: 123863
Poruke: 257
194.247.212.*



+690 Profil

icon Re: Jdbc MySQL pomoc?16.08.2012. u 14:46 - pre 141 meseci
@ByteCode

Naravno, u pravu si.

Ima tu još oko "zatvaranja" resursa (tu recimo primer od @kljunovi ne valja, trebalo bi u finally bloku da zatvara preparedstatement) ali mi je ovo palo u oči a prilično je opasno.

U svakom slučaju slažem se da je poželjno i obrazložiti.
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
188.124.193.*



+18 Profil

icon Re: Jdbc MySQL pomoc?21.08.2012. u 11:48 - pre 141 meseci
Brate jesi li se uspio konektovati?

Meni kad upisem

"java MySQLDemo"

izbaci ovu gresku:

Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver


A kad pokusam

"java -classpath *.jar MySQLDemo"

kaze

Error: Could not find or load main class MySQLDemo


Ne kontam kako sad odjednom ne nalazi ovu glavnu klasu?
Pretpostavljam da je problem u putanjama, ali ne znam ni sta da "guglam" , a kamoli kako da popravim ovo.
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: Jdbc MySQL pomoc?21.08.2012. u 12:35 - pre 141 meseci
Probaj ovako:

Code:

java -classpath .;mysql-connector-TACAN-NAZIV-ARHIVE.jar;AKO-IMAS-JOS-ARHIVA.jar MySQLDemo
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
188.124.193.*



+18 Profil

icon Re: Jdbc MySQL pomoc?21.08.2012. u 17:50 - pre 141 meseci
Probao sam sad ovo:

Code:
java -classpath .;mysql-connector-java-5.1.21-bin.jar MySQLDemo


I izbaci mi ono usage pa upustva za upotrebu java komande.

 
Odgovor na temu

nemnesic
nemnesic
Software Developer
Vranje Florida

Moderator
Član broj: 44355
Poruke: 802
*.ga.at.cox.net.



+64 Profil

icon Re: Jdbc MySQL pomoc?21.08.2012. u 18:00 - pre 141 meseci
moras da ubacis punu putanju do "mysql-connector-java-5.1.21-bin.ja"
i stavi to izmedju ""

Code:
java -classpath .;"path/to/jar/mysql-connector-java-5.1.21-bin.jar" MySQLDemo




Citat:
vatri:
Probao sam sad ovo:

Code:
java -classpath .;mysql-connector-java-5.1.21-bin.jar MySQLDemo


I izbaci mi ono usage pa upustva za upotrebu java komande.


 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
188.124.193.*



+18 Profil

icon Re: Jdbc MySQL pomoc?21.08.2012. u 18:13 - pre 141 meseci
Probao ovo:

Code:
java -classpath .;"/home/boris/Desktop/Java/MySQLDemo/mysql-connector-java-5.1.21-bin.jar" MySQLDemo



i ista stvar - izbaci ono usage.
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
188.124.193.*



+18 Profil

icon Re: Jdbc MySQL pomoc?21.08.2012. u 23:03 - pre 141 meseci
Evo konacno nadjoh rjesenje - samo treba znati kako i sta "guglati":

http://stackoverflow.com/quest...0/importing-external-jar-files

Znaci ja sam kompajlirao program bez ukljucivanja jdbc jar fajla u putanju.

@bantu: umjesto toga sto si ti stavljao (u parametru -cp) ";" treba staviti ":" na Linux sistemu.


Code:

javac -cp .:/home/boris/Desktop/Java/MySQLDemo/mysql-connector-java-5.1.21-bin.jar MySQLDemo.java 

java -cp .:/home/boris/Desktop/Java/MySQLDemo/mysql-connector-java-5.1.21-bin.jar MySQLDemo


[Ovu poruku je menjao vatri dana 22.08.2012. u 00:30 GMT+1]
 
Odgovor na temu

[es] :: Java :: Jdbc MySQL pomoc?

Strane: 1 2

[ Pregleda: 4430 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.