W części pierwszej zrobiliśmy program wypisujący komunikat poleceniem System.out.println.

Teraz coś dla znających MySQL: program łączy się z bazą i wypisuje wyniki zapytania SQL, napisany w Debianie. Należy podmienić:
uzytkownik, haslo, baza (host ewentualnie, tu localhost)

zapytanie.java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.sql.*;

public class zapytanie
{
  public static void main(String[] args)
      throws ClassNotFoundException,SQLException
  {
    //Połącz z bazą MySQL:
    Class.forName("com.mysql.jdbc.Driver"); //zaladuj sterownik MySQL
    Connection SQL = DriverManager.getConnection("jdbc:mysql://localhost/baza", "uzytkownik", "haslo");
   
    //Zapytanie SELECT....
    Statement zapytanie = SQL.createStatement();
    ResultSet tabela = zapytanie.executeQuery("SELECT * FROM klient");

    while (tabela.next())   //czyta tabelę wiersz po wierszu, jak zwykle w takich programach
    {
      String imie = tabela.getString("imie"); //"imie" to nazwa kolumny SQL
      String nazwisko = tabela.getString("nazwisko"); //kolumna nazwisko też typu String tj. VARCHAR
      int pesel = tabela.getInt("pesel"); //kolumna typu INT, są też inne typy
      System.out.println(imie + " " + nazwisko + " PESEL:" + pesel);
    }

    zapytanie.close();
    SQL.close();
  }
}

Kompilacja:

1
javac zapytanie.java

Uruchomienie (warto zrobić osobny plik run z uprawnieniami uruchomienia chmod a+x ./run )

1
java -classpath .:/usr/share/java/mysql.jar zapytanie

Wersja z przygotowaniem zapytania

Ten sam program w wersji już z przygotowaniem zapytania SQL (obrona przed SQL Injection – tu niekonieczna, dlatego wersja 1 jest dobra).

zapytanie.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.sql.*;

public class zapytanie
{
  public static void main(String[] args)
                     throws ClassNotFoundException,SQLException
  {
    Class.forName("com.mysql.jdbc.Driver"); //zaladuj sterownik MySQL
    Connection SQL = DriverManager.getConnection("jdbc:mysql://localhost/baza" , "uzytkownik", "haslo" );
    PreparedStatement zapytanie = SQL.prepareStatement("SELECT * FROM klient");
    ResultSet tabela = zapytanie.executeQuery();

    while (tabela.next())
    {
      String imie = tabela.getString("imie"); //"imie" to nazwa kolumny SQL
      String nazwisko = tabela.getString("nazwisko");
      int pesel = tabela.getInt("pesel");
      System.out.println(imie + " " + nazwisko + " - " + pesel);
    }

    zapytanie.close();
    SQL.close();
  }
}