|
[ tanaka @ 03.08.2006. 11:29 ] @
| Pocetnik sam u Java programiranju i treba da se konektujem na bazu koja je mysql.Citao sam neka upustva sa neta i sada napisao sam deo test koda koji bi trebao da importuje neke podatke u postojecu tabelu u mysql bazi.Koristim eclipse 3.1, Mysql 5.0, java JDK 1.5, mysql-connector-java-3.1.10.zip
Podesio sam classpath na C:\Program Files\Java\jre1.5.0_03\lib\mysql-connector-java-3.1.10.zip; gde mi se inace i nalazi
mysql-connector-java-3.1.10.zip
import java.sql.*;
public class Konekcija {
String Puffball,Dvd45;
String query = "INSERT INTO filmovi VALUES ("+Puffball+","+Dvd45+","+1977+")";
;
Connection connection; // Holds the connection to the database
public Konekcija(String driverClassName, String dbname,
String username, String password)
throws ClassNotFoundException, SQLException
{
connection = DriverManager.getConnection(dbname,username, password);
if (connection == null)
throw new IllegalStateException("Connection already closed.");
Statement statement =
connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet r = statement.executeQuery(query);
}
public void close() {
try { connection.close(); }
catch (Exception e) {}
connection = null;
}
protected void finalize() { close(); }
public static void main(String args[]){
try{
Konekcija k = new Konekcija("com.mysql.jdbc.Driver","baza",
"root","root");} catch (ClassNotFoundException e){}
catch (SQLException se){};
// k.close();
}
}
Sledeci deo koda ne radi.Da li bi trebao da importujem jos nesto osim java.sql.*,naime ja sam u eclipse importovao u projekat u kome mi se ovo nalazi ova klasa mysql-connector-java-3.1.10.zip.Inace u svim primerima koje sam skinuo sa neta Class Driver Name ima putanju com.mysql.jdbc.Driver, a ja kada raspakujem ovaj drajver koji imam onim ima istu strukturu paketa com.mysql.jdbc, sqamo sto nema Driver na kraju vec neke druge pakete.Mozda je u tome problem.Sta onda da radim?
Pozdrav svima , hvala unapred na odgovorima.Pocetnik sam tako da mozda nesto lupim ali se nadam da cete imati razumevanja |
[ nemnesic @ 03.08.2006. 13:33 ] @
Pozdrav tanaka,
vidi ovu "moju" classu
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
public class ConnectDB {
Connection conn;
private void dbConnect(String user, String pass, String host)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
String s = "jdbc:mysql://" + host + "/?user=" + user +
"&password=" + pass;
Connection conn = DriverManager.getConnection(s);
}
catch ( ClassNotFoundException cnfex )
{
System.err.println( "Failed to load JDBC/ODBC driver." );
System.exit( 1 );
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null,"" + ex.getMessage()
+ "nSQLState: " + ex.getSQLState() + "nVendorError: " +
ex.getErrorCode(),"Error",JOptionPane.ERROR_MESSAGE);
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
finally
{
if (conn != null)
{
try
{
conn.close ();
System.out.println ("Database connection
terminated");
}
catch (Exception e) { /* ignore close errors */ }
}
}
}
}
pozdrav
nn
[ tanaka @ 03.08.2006. 14:49 ] @
Hvala nemnesic na odgovoru, probacu sa ovim da vidim da li radi kod mene
[ nemnesic @ 03.08.2006. 17:14 ] @
>
EVO TI OVO: radio 100%
Input_test.java
Code:
/*
* Created on Aug 3, 2006
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import java.io.*;
/**
* @author ndn5293
* this class is just for testing purposes. It just gets input from the
user.
*/
public class Input_test {
private static BufferedReader stdin = new BufferedReader( new
InputStreamReader( System.in ) );
private ConnectDB db;
public Input_test()
{
try{
getInput();
}
catch(Exception e){e.printStackTrace();
}
}
public static void main(String[] args) {
new Input_test();
}
public void getInput() throws Exception
{
// Prompt the user
System.out.print( "user: " );
// Read a line of text from the user.
String user = stdin.readLine();
//user = user.toUpperCase();
System.out.print( "pass: " );
String pass = stdin.readLine();
//pass = pass.toUpperCase();
System.out.print( "host: " );
String host = stdin.readLine();
//host = host.toUpperCase();
db = new ConnectDB();
db.dbConnect(user,pass,host);
}
}
i ConnectDB.java
Code:
/*
* Created on Aug 3, 2006
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
/**
* @author ndn5293
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ConnectDB {
Connection conn;
public void dbConnect(String user, String pass, String host)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
String s = "jdbc:mysql://" + host + "/?user=" + user + "&password=" +
pass;
Connection conn = DriverManager.getConnection(s);
}
catch ( ClassNotFoundException cnfex )
{
System.err.println( "Failed to load JDBC/ODBC driver." );
System.exit( 1 );
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null,"" + ex.getMessage() +
"nSQLState: " + ex.getSQLState() + "nVendorError: " +
ex.getErrorCode(),"Error",JOptionPane.ERROR_MESSAGE);
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
finally
{
if (conn != null)
{
try
{
conn.close ();
System.out.println ("Database connection terminated");
}
catch (Exception e) { /* ignore close errors */ }
}
}
}
public int countIt(int count, String user, String pass, String host)
{
if(count < 30)
{
JOptionPane.showMessageDialog(null,"Connecting..." + count, "OK",
JOptionPane.ERROR_MESSAGE);
dbConnect(user, pass, host);
}
else
{
JOptionPane.showMessageDialog(null,"Too many tries", "Error",
JOptionPane.ERROR_MESSAGE);
}
count++;
return count;
}
}
pozdrav
[ tanaka @ 03.08.2006. 21:28 ] @
hvala ti na odgovoru, izgleda da je meni problem sa konektorm na bazu tj. drajverima.Da li mozes da mi kazes sta da radim sa njima(kao da ih ne vidi),
Podesio sam classpath na C:\Program Files\Java\jre1.5.0_03\lib\mysql-connector-java-3.1.10.zip; gde mi se inace i nalazi
mysql-connector-java-3.1.10.zip
U klasi sam importovao paket java.sql.*;
namestio sam classname, database,username, pass kao sto je za moju bazu.Da li treba da bi se importovao Driver za konekciju na bazu jos nesto uraditi, jer mi se cini da on ne vidi drajvere.
Pozdrav i hvala ti za odgovore!!!
[ nemnesic @ 03.08.2006. 21:32 ] @
>
unZIP
mysql-connector-java-3.1.10.zip
i sad set classpath to mysql-connector-java-x.x.xx.jar file.
nn
[ tanaka @ 05.08.2006. 14:42 ] @
public class Konekcija1 {
String Puffball,Dvd45;
Connection connection = null;
Statement statement;
String query = "INSERT INTO filmovi VALUES ("+Puffball+","+Dvd45+","+1977+")";
Konekcija1() {
try {
// Load the JDBC driver
String driverName = "com.mysql.jdbc.Driver"; // MySQL MM JDBC driver
Class.forName(driverName);
// Create a connection to the database
String serverName = "localhost";
String mydatabase = "baza";
String username = "username";
String password = "password";
String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url
connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
System.out.print("Nisu nadjeni drajveri za bazu");
// Could not find the database driver
} catch (SQLException e) {
System.out.print("Ne moze da se poveze na bazu");
// Could not connect to the database
}
}
public static void main(String[] args){
Konekcija1 k = new Konekcija1();
}
Evo ovo bi trebalo a radi po svim pravilima.I on meni sada nadje drajvere(mislim ne javi mi ClassNotFoundException), ali mi javi SQLException tj. da ne moze da se konektuje na bazu.
Sta li znaci ovo
jdbc:mysql:// u urlu, mozda taj url nije dobar(iako vidim da je u svim primerima tako ide ovo jdbc:mysql:// pa onda lokacija baze, da li ta putanja zavisi nesto od drajvera ili sta?To mi ni jasno , ali je veoma moguce da url nije dobar.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|