Problem z połączeniem z bazą

0

Zainstalowałem MySQL, jednak nie mogę nawiazać połączenia z bazą z poziomu Javy. Jeśli chodzi o MySQL Workbench, połączenie jest nawiązywane prawidłowo - dane admina: login-root haslo-admin.

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class Main {
	
	public static void main(String[] args) {
		
		// LADOWANIE STEROWNIKA
		System.out.print("Sprawdzanie sterownika:");
        try {
        	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
		} catch (Exception e) {
			System.out.println("Blad przy ladowaniu sterownika bazy!");
			System.exit(1);
		}
		System.out.print(" sterownik OK");
		
		// LACZENIE Z BAZA
		System.out.print("\nLaczenie z baza danych:");
		String baza = "jdbc:mysql://localhost:3306/test";
		String user = "root";
		String pass = "admin";
		java.sql.Connection conn = null;
        try {
			conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "admin");
		} catch (SQLException e) {
			System.out.println("Blad przy ladowaniu sterownika bazy!");
			System.exit(1);
		}
		System.out.print(" polaczenie OK\n");
		
	}

}

Otrzymuje komunikaty:

Sprawdzanie sterownika: sterownik OK
Laczenie z baza danych:Blad przy ladowaniu sterownika bazy!

0

ja z MySQL lacze sie tak:

import com.mysql.jdbc.Statement;
import java.sql.*;

public class MySQL {

    public static void main(String[] args) throws Exception {
        String driverName = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/database_name";
        String uid = "user_name";
        String pwd = "user_password";
        Connection con;

        try {
            Class.forName(driverName);
            con = DriverManager.getConnection(url, uid, pwd);
            Statement select = (Statement) con.createStatement();
      ResultSet result = select
          .executeQuery("SELECT * FROM table_name");

      System.out.println("Got results:");
      while (result.next()) { // process results one row at a time
        
         String pierwsz_wynik = result.getString(1);
         String drugi_wynik = result.getString(2);

      }
        } catch (ClassNotFoundException exc) {
            System.out.println("Brak klasy sterownika");
            System.out.println(exc);
            System.exit(1);
        } catch (SQLException exc) {
            System.out.println("Nieudane połączenie z " + url);
            System.out.println(exc);
            System.exit(1);

        }
    }
}

btw zakladam ze dodales biblioteke sterownika do projektu?

0

Tak, oczywiście, że dodałem.

Dla twojego kodu, pojawia mi się:

Nieudane połączenie z jdbc//localhost:3306/test
java.sql.SQLException: No suitable driver found for jdbc//localhost:3306/test

z tą jednak różnicą, że musiałem zmienić nazwę sterownika (na tym sterowniku co ty masz, wysypywało mi się, w sumie nie wiem dlaczego)

0

Przeinstalowałem całe środowisko i postanowiłem spróbować połączyć się z bazą przy pomocy PHP:

<?php 
$connection = @mysql_connect('localhost', 'root', '') 
or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error()); 
echo "Udało się połączyć z serwerem!<br />";  
$db = @mysql_select_db('mysql', $connection) 
or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error()); 
echo "Udało się połączyć z bazą dancych!"; 
mysql_close($connection); 
?>

i uwaga ... Działa! Otrzymuje "Udało się połączyć z serwerem! Udało się połączyć z bazą dancych!"

Dlaczego więc, dla tych samych danych dotyczących bazy, mam problem z połaczeniem przez jave?

Zmodyfikowany kod:

import java.sql.DriverManager;
import java.sql.SQLException;

public class Main {
	
	public static void main(String[] args) {
		
		// LADOWANIE STEROWNIKA
		System.out.print("Sprawdzanie sterownika:");
        try {
        	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
		} catch (Exception e) {
			System.out.println("Blad przy ladowaniu sterownika bazy!");
			System.exit(1);
		}
		System.out.print(" sterownik OK");
		
		// LACZENIE Z BAZA
		System.out.print("\nLaczenie z baza danych:");
		String baza = "jdbc:mysql://localhost:3306/mysql";
		String user = "root";
		String pass = "";
		java.sql.Connection conn = null;
        try {
			conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "admin");
		} catch (SQLException e) {
			System.out.println("Blad przy ladowaniu sterownika bazy!");
			System.exit(1);
		}
		System.out.print(" polaczenie OK\n");
		
	}

}

otrzymuje na ekranie:

Sprawdzanie sterownika: sterownik OK
Laczenie z baza danych:Blad przy ladowaniu sterownika bazy!

0

Moze wypisz dokladnie jaki wyjatek wyskakuj. moze to pomoze

0
BoBi1234 napisał(a)

Moze wypisz dokladnie jaki wyjatek wyskakuj. moze to pomoze

Sprawdzanie sterownika: sterownik OK
Laczenie z baza danych:Blad przy ladowaniu sterownika bazy!
java.sql.SQLException: No suitable driver found for jdbc//localhost:3306/mydb
polaczenie OK

O to chodzi?

0

W takim razie co może powodować błąd tego sterownika?
Do projektu importuje tylko: mysql-connector-java-3.1.8-bin.jar, może czegoś mi brakuje?

0
BoBi1234 napisał(a)

A moze tak 5.1.12 :) u mnie dziala
http://dev.mysql.com/downloads/connector/j/5.1.html#downloads

ok działa, dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1