Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 32 odgovora
  • 11.457 pregleda

Najnovija ↓

pristup iz jave bazi podataka 03.02.2007. u 16:35 · pre 240 meseci #1
Imam kod kojim iz jave pristupam bazi prethnodno napravljenoj u mysql-u, ali su mi rekli da treba da se podesi sledece: control panel\administrative tools\data sources(ODBC) i da pod time treba da se podese tabovi system DSN i file DSN, samo ja ne znam kako da ih posesim, molim za pomoc!
Re: pristup iz jave bazi podataka 03.02.2007. u 23:28 · pre 240 meseci #4
Pogledaj temu http://www.elitesecurity.org/t105198-Setovanje-classpatha.

Obično možeš da se izvučeš i jeftinije, tako što će ti IDE pomoći.
Recimo, ako radiš sa eklipsom :
nađi package explorer, desni klik na tvoj projekat, Build path, configure build path, tab libraries, taster add external jar, dalje znaš; prouči malo ostale opcije u prozoru java build path, umeju da budu korisne.
Potpis
it works on my machine
Re: pristup iz jave bazi podataka 04.02.2007. u 01:23 · pre 240 meseci #5
ljudi kako da ubacim ovaj driver, pokusao sam tj. ja njega ubacim ali onda mi prijavi 100 gresaka!
Re: pristup iz jave bazi podataka 04.02.2007. u 02:50 · pre 240 meseci #6
Ama gde ga 'ubaciš', šta odradiš, koje greške ti prijavljuje ? Daj neki detalj.
Potpis
it works on my machine
Re: pristup iz jave bazi podataka 04.02.2007. u 09:17 · pre 240 meseci #7
Citat:
dragan_bg_88: ljudi kako da ubacim ovaj driver, pokusao sam tj. ja njega ubacim ali onda mi prijavi 100 gresaka!


Probaj ovo...

C:\Program Files\Java\jdk1.x.x_xx\jre\lib\ext

U taj direktorijum samo prekopiraj taj JAR fajl (connector).
Re: pristup iz jave bazi podataka 04.02.2007. u 10:44 · pre 240 meseci #8
Ne mogu da ubacim u taj folder onaj .jar fajl jer ga nemam, ovde se sve zavrsava C:\Program Files\Java\jdk1.x.x_xx\jre\lib\ dalje nema. A kada tu kopiram izbacuje mi izuzetak kao i kada ga uopste tu nema. A inace sam probao da ubacim onaj sql connector kao paket u isti projekat da bi mogao da ga cita, i tu izbacuje 100 gresaka kako ne moze da nadje neke tipove i sl. npr:

D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:30: package com.mchange.v2.c3p0 does not exist
import com.mchange.v2.c3p0.C3P0ProxyConnection;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:31: package com.mchange.v2.c3p0 does not exist
import com.mchange.v2.c3p0.QueryConnectionTester;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:43: cannot find symbol
symbol: class QueryConnectionTester
public final class MysqlConnectionTester implements QueryConnectionTester {
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\jboss\ExtendedMysqlExceptionSorter.java:27: package org.jboss.resource.adapter.jdbc does not exist
import org.jboss.resource.adapter.jdbc.ExceptionSorter;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\jboss\ExtendedMysqlExceptionSorter.java:28: package org.jboss.resource.adapter.jdbc.vendor does not exist
import org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\jboss\ExtendedMysqlExceptionSorter.java:37: cannot find symbol
symbol: class MySQLExceptionSorter
public final class ExtendedMysqlExceptionSorter extends MySQLExceptionSorter {
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\jboss\MysqlValidConnectionChecker.java:31: package org.jboss.resource.adapter.jdbc does not exist
import org.jboss.resource.adapter.jdbc.ValidConnectionChecker;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\jboss\MysqlValidConnectionChecker.java:42: cannot find symbol
symbol: class ValidConnectionChecker
ValidConnectionChecker, Serializable {
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\log\CommonsLogger.java:26: package org.apache.commons.logging does not exist
import org.apache.commons.logging.Log;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\log\CommonsLogger.java:27: package org.apache.commons.logging does not exist
import org.apache.commons.logging.LogFactory;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\log\Log4JLogger.java:27: package org.apache.log4j does not exist
import org.apache.log4j.Level;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\log\Log4JLogger.java:28: package org.apache.log4j does not exist
import org.apache.log4j.Logger;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\log\Log4JLogger.java:39: cannot find symbol
symbol : class Logger
location: class com.mysql.jdbc.log.Log4JLogger
private Logger logger;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\testsuite\BaseTestCase.java:45: package junit.framework does not exist
import junit.framework.TestCase;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\testsuite\BaseTestCase.java:54: cannot find symbol
symbol: class TestCase
public abstract class BaseTestCase extends TestCase {
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\testsuite\regression\PooledConnectionRegressionTest.java:38: package junit.framework does not exist
import junit.framework.Test;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\testsuite\regression\PooledConnectionRegressionTest.java:39: package junit.framework does not exist
import junit.framework.TestSuite;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\testsuite\regression\PooledConnectionRegressionTest.java:168: cannot find symbol
symbol : class Test
location: class testsuite.regression.PooledConnectionRegressionTest
public static Test suite() {
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\StringUtils.java:100: warning: non-varargs call of varargs method with inexact argument type for last parameter;
cast to java.lang.Object for a varargs call
cast to java.lang.Object[] for a non-varargs call and to suppress this warning
return (String) toPlainStringMethod.invoke(decimal, null);
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:54: warning: non-varargs call of varargs method with inexact argument type for last parameter;
cast to java.lang.Class for a varargs call
cast to java.lang.Class[] for a non-varargs call and to suppress this warning
.getMethod("ping", null);
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:68: cannot find symbol
symbol : class C3P0ProxyConnection
location: class com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
C3P0ProxyConnection castCon = (C3P0ProxyConnection) con;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:68: cannot find symbol
symbol : class C3P0ProxyConnection
location: class com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
C3P0ProxyConnection castCon = (C3P0ProxyConnection) con;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:73: cannot find symbol
symbol : variable C3P0ProxyConnection
location: class com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
C3P0ProxyConnection.RAW_CONNECTION, NO_ARGS_ARRAY);
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:87: cannot find symbol
symbol : variable CONNECTION_IS_OKAY
location: class com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
return CONNECTION_IS_OKAY;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:89: cannot find symbol
symbol : variable CONNECTION_IS_INVALID
location: class com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
return CONNECTION_IS_INVALID;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:101: cannot find symbol
symbol : variable CONNECTION_IS_INVALID
location: class com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
return CONNECTION_IS_INVALID;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:108: cannot find symbol
symbol : variable CONNECTION_IS_INVALID
location: class com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
return CONNECTION_IS_INVALID;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:111: cannot find symbol
symbol : variable CONNECTION_IS_OKAY
location: class com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
return CONNECTION_IS_OKAY;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:116: cannot find symbol
symbol : variable CONNECTION_IS_INVALID
location: class com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
return CONNECTION_IS_INVALID;
D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:126: cannot find symbol
symbol : variable CONNECTION_IS_OKAY
location: class com.mysql.jdbc.integration.c3p0.MysqlConnectionTester
return CONNECTION_IS_OKAY;

to su samo neke od svih onih 100
Re: pristup iz jave bazi podataka 04.02.2007. u 15:53 · pre 240 meseci #9
Ček, ček, sad malo skrećeš sa teme.
Imaš sors od mysql connectora i pokušavaš da startuješ neke test klase iz njega. One očekuju prisustvo još nekih paketa koje ti nemaš (recimo jbossa) da bi se izvršile i onda pucaju. Šta je tačno ideja tog MysqlConnectionTester-a nemam pojma (nemam sors), ali to nam nije ni bitno.

Da li si ti pokušao u prisustvu sorsa od mysql connectora da izvršiš ovakvu liniju koda :
Code:

Class.forName("com.mysql.jdbc.Driver");

?
Ispiši je unutar nekog try catch bloka i probaj da izvršiš. Ako ne pukne to znači da tvoja aplikacija vidi klasu com.mysql.jdbc.Driver iz onog mysql connector jara i to je baš ono što ti treba.
Znači, ako ovo prođe, onda verovatno neće biti nikakvih problema da prođe i sledećih par linija :
Code:

String url = "jdbc:mysql://localhost/<imeBaze>?characterEncoding=UTF-8&useUnicode=true";
Connection con = DriverManager.getConnection(url, <user>, <password>);
Statement s = con.createStatement();
ResultSet rs = s.executeQuery("select * from <imeTabele>");

i odradio si posao. Naravno, treba prvo da ubaciš parametre tvoje baze gde sam obeležio sa <>.

A ako ti Class.forName ne prođe, kaži nam s kojim alatom radiš.
Potpis
it works on my machine
Re: pristup iz jave bazi podataka 04.02.2007. u 17:46 · pre 240 meseci #10
Koristim "Sun Java(TM) Studio Enterprise 8". Promenio sam onaj deo koji je kod mene bio malo drugacije napisan. Ja imam kod iz koga treba da pristupim bazi, ali moram nekako da povezem taj kod sa my sql-om, tako da ne koristim onaj tester source. A kada sam probao da promenim to, izbacuje mi gresku: D:\Vezbe_Java\Vezbe\src\mysql_connector\src\com\mysql\jdbc\integration\c3p0\MysqlConnectionTester.java:30: package com.mchange.v2.c3p0 does not exist, i jos dosta njih koje se javljaju kod kompajliranja samog sql connector-a, tj. taj sql connector ima u svom kodu neke importe, npr.

import com.mchange.v2.c3p0.C3P0ProxyConnection;
import com.mchange.v2.c3p0.QueryConnectionTester;
import com.mysql.jdbc.CommunicationsException;

i njih ne moze da pronadje.
Re: pristup iz jave bazi podataka 04.02.2007. u 23:24 · pre 240 meseci #11
Nemaš nikakvu potrebu da teraš MysqlConnectionTester da proradi. Njega zaboravi.
Nego ti lepo pogledaj onu top temu koju sam ti pomenuo.

Ili čačkaj malo po Studiu, naćićeš valjda opciju koja radi povezivanje jara sa projektom. Uzgred, narode, Sun Java Studio ako se dobro sećam dosta liči na netbeans, pa bi neki netbeansovac verovatno mogao da pomogne čoveku oko ovoga.

Nevezano za ovu priču, ja imam dosta loša iskustva sa Sun Java(TM) Studio Enterprise -om. Otkad sam sa njega prešao na eclipse, mnogo lakše dišem. Nadam se da je u međuvremenu Studio uznapredovao, inače ti nimalo ne zavidim na alatu.
Potpis
it works on my machine
Re: pristup iz jave bazi podataka 04.02.2007. u 23:37 · pre 240 meseci #12
ja sam koristio forte for java, i onda sam presao na ovaj studio, mnogo je bolji od forte-a, a pokusacu da cackam nesto. Inace nista nisam cackao po testeru, samo kazem da je probao da ga kompajlira, sam, i izbacio sve one greske, onda sam video i gde su. Ok, ako neko ima jos neku ideju za moj problem neka pise
Re: pristup iz jave bazi podataka 10.02.2007. u 19:46 · pre 240 meseci #14
Javu relativno lako mozes povezati sa bazom podataka. Sledi korake koje cu ti sad pokazati i iz koda cemo sve odraditi, nema potrebe da trazis u IDE-u kako se to radi.

1. Potrebna ti je baza, posto radis u MySQL-u skini je sa neta.
2. Da bi povezao javu i bazu, moras imati JDBC drajver i posle ga implementirati u IDE koji koristis.
Drajver ces skinuti kao zip fajl, otpakovati i jar fajl (ime fajla bi trebalo da bude "mysql-connector-java-5.0.4-bin.jar") ubaciti u IDE koji koristis kako bi on prepoznao drajver pri kompajliranju. Zapamti ubacujes samo taj JAR fajl, nista vise, ostalo nije neophodno. JDBC drajver mozes skinuti sa http://dev.mysql.com/downloads/connector/j/5.0.html i najbolje bi bilo da ga otpakujes tamo gde ti se vec nalazi JDK da bi lakse pamtio gde ti se fajlovi nalaze.
3. Posto IDE sad zna gde se i koji se drajveri koriste, mozes otvoriti novi java fajl i kreiraj klasu slicnu mojoj. Videces nisam nista senzacionalno izmislio, samo sam malo pojednostavio nacin pristupa bazi. Kreiraj instancu klase i metodom accessToDatabase(...) pristupi bazi, upite postavljaj sa setQuery(...) i setManipulationQuery(...) i to je sve.

import javax.swing.*;
import java.sql.*;
import java.io.*;

public class Konekcija{
private Connection konekcija;
private String upit, url, baza;
private Statement stmt;
private ResultSet rezultat;

public Konekcija() throws java.lang.ClassNotFoundException{
Class.forName("com.mysql.jdbc.Driver"); //unosimo MySQL drajver u
//aplikaciju
}
public void accessToDatabase(String databaseName, String userName,
String pass) throws java.sql.SQLException{
//podrazumeva se localhost
url="jdbc:mysql://localhost/"+databaseName;
konekcija = DriverManager.getConnection(url,userName,pass);
stmt = konekcija.createStatement(); //kreira se veza izmedju
//aplikacije i MySQL baze

}
public void setQuery(String query) throws java.sql.SQLException{

//da bi se korisitila ova metoda mora se prvo napraviti veza sa bazom
upit = query;
rezultat = stmt.executeQuery(upit);
}

//ova metoda ne vraca nikakav rezultat, pa se zato koristi kada zelimo
//dodati, izmeniti informacije u bazi.
public void setManipulationQuery(String query) throws java.sql.SQLException{
upit = query;
stmt.execute(query);
}
public String getQuery(){ //vraca poslednje koristeni upit
return upit;
}
public ResultSet getResults(){//vraca rezultate upita
return rezultat;
}
}



Re: pristup iz jave bazi podataka 17.02.2007. u 10:18 · pre 239 meseci #15
Uzeo sam ovu klasu od dalibormaj1 i napravio classu test, evo main metode:


Code:

public static void main(String[] args)
    {
        try
        {
            Konekcija kon = new Konekcija(); 
            kon.accessToDatabase("mdbTest", "", "");
            
            kon.setQuery("Select naziv from proba"); 
                        
            // kako da sada odstampam rezultat ovog upita (jedan ili vise redova)
            
        }
        catch (Exception err) {
            System.out.println("Error: " + err);
        }


Hvala
Potpis
Every program is either trivial or it contains at least one bug.
Re: pristup iz jave bazi podataka 18.02.2007. u 12:14 · pre 239 meseci
izmenjeno 1 put, poslednji put dalibormaj1 18.02.2007. u 12:40
  1. dalibormaj118.02.2007. u 12:40zapis iz teksta poruke
#16
Kao prvo nisam siguran da tako mozes da pristupis bazi, bez podatka o korisnickom imenu i password-u. Najlakse bi ti bilo da se logujes kao root korisnik (administrator) sa nekom sifrom koju si verovatno stavio kad si instalirao MySQL.

npr.
kon.accessToDatabase("neka_tabela","root","123");

Kao drugo, za stampanje rezultata koristices metodu getResults() i to na sledeci nacin:

Tvoj primer je bio upit "Select naziv from proba" i pretpostavljam da ima vise redova.
Jedan prolaz kroz sledecu while petlju uzima jedan red, i tako sve dok ima redova (zato je stavljen uslov
kon.getResults().next()). Nisi mi rekao kako izgleda tvoja tabela "proba", pa sam pretpostavio da ima
2 kolone, kod mene se one zovu "kolona1" i "kolona2", kod tebe verovatno drugacije.

Code:

while(kon.getResults().next()){
       System.out.println(kon.getResults().getString("kolona1") + "," +kon.getResults().getString("kolona2"));
}


kon.getResults().getString - koristis kad iz celije uzimas String vrednost
kon.getResults().getDouble - kad uzimas Double
itd...

Ako budes imao jos koji problem, zovi.
Re: pristup iz jave bazi podataka 19.02.2007. u 17:26 · pre 239 meseci #17
Hvala, uspeo sam da resim dotican problem (mucnuo sam glavom) i obratio se java.sun.com za tutorial :)
Potpis
Every program is either trivial or it contains at least one bug.
Re: pristup iz jave bazi podataka 25.09.2007. u 12:58 · pre 232 meseca #18
Ljudi, ja sam otvorio ovu temu jos davno. I citao sam sve sto ste mi rekli, ali nisam uspeo da resim problem. Sada sam opet dosao do toga da moram da ga resim jer ne mogu da uradim sve sto mi treba u access-ovoj bazi. I opet sam procitao sve o setovanju classpath-a, i na sun-ovom sajtu, i na ovom ovde, ali ja ne znam da ga setujem??? Ili sam ja glup ili ne znam sta je. Moze li neko objasnjenje, gde treba da kucam i sta treba da kucam da bih setovao classpath. Jeste debilno pitanje skroz, znam da ce se svi smejati kada ga procitaju, ali molim vas za pomoc. probao sam u command prompt-u, ali tu mi izbacuje neku listu komandi kada to ukucam??? Molim vas za pomoc...
Re: pristup iz jave bazi podataka 25.09.2007. u 23:22 · pre 232 meseca #19
Ljudi, molim vas. Ubacujem .jar file iz connector-a u ext folder unutar jre/lib ali ne moze da prodje sledece:
Code:

Class.forName("com.mysql.jdbc.Driver");

U cemu je problem? Svima je ovaj connector proradio, samo meni nece, zasto?
Re: pristup iz jave bazi podataka 26.09.2007. u 09:58 · pre 232 meseca #20
Ako si u međuvremenu prešao na eclipse, raspoložen sam da prođemo celu priču korak po korak. Bez eclipsea čini mi se da nikad nisam ovo radio, pa bih morao prvo ja da proučavam kako to funkcioniše, a to me već mrzi.
Potpis
it works on my machine
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme