Skip navigation

Csatlakozás JDBC-vel

Adatbáziskapcsolat megnyitása

Az adatbázis kapcsolat létrehozásához először regisztráljuk a driver-t a programban.

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

Majd a DriverManager.getConnection( url, felhasználónév, jelszó ) metódussal hozzuk létre a Connection típusú kapcsolatot. Az URL-t itt String-ben adtuk meg, nem közvetlen a metódusba írtuk. 

String url = "jdbc:mysql://localhost:3306/pelda";
Connection con = DriverManager.getConnection(url, "root", "");

Ne feledkezzünk meg arról, hogy a program végén zárjuk le az adatbázis kapcsolatot!

con.close();

SQL lekérdezés végrehajtása

Az SQL lekérdezés lefuttatásához létrehozunk egy Statement példányt a Connection osztály createStatement() metódusával. A metódus paraméter nélkül, illetve bizonyos opciók megadásával is meghívható. Jelen esetben itt beállítjuk azt, hogy az olvasott adatok csak olvashatóak (nem módosítjuk őket).

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stmt.executeQuery("SELECT * from varosok");

Megjegyezzük, hogy az Statement.executeQuery() metódus csak lekérdezésekhez használható. A visszatérési értéke egy ResultSet típusú objektum.

Lekérdezés eredményeinek listázása

A lekérdezés eredményeinek listázásához a ResultSet halmaz elemeti kell végignézni. A ResultSet.next() metódusa a halmaz következő elemére lép, és true (igaz) értékkel tér vissza, ha található még benne elem, és false (hamis) értékkel tér vissza, ha minden elemet megvizsgáltunk. Az aktuális sor oszlopait a típusainak megfelelő metódussal kérhetjük le, amely paramétereként meg kell adni az oszlop nevét.

String id = rs.getString("id");
String vnev = rs.getString("varosnev");
String megye = rs.getString("megye");

Jdbc.java

import java.sql.*;

public class Jdbc {
  public static void main(String args[]){
    try {
      Statement stmt;
      ResultSet rs;


      // JDBC driver regisztralasa MySQL-hez.
      Class.forName("com.mysql.jdbc.Driver");

      // hatarozzuk meg az adatbazis elerhetoseget
      String url = "jdbc:mysql://localhost:3306/pelda";

      // hozzuk letre a kapcsolatot
      // mas esetben a ket ures string jelentene a felhasznalonevet es a jelszot
      Connection con = DriverManager.getConnection(url, "root", "");

      // irassuk ki a kapcsolodasi adatokat
      System.out.println("URL: " + url);
      System.out.println("Connection: " + con);

      // hozzuk letre a Statement objektumot
      stmt = con.createStatement();

      stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

      // hajtsunk vegre egy egyszeru lekerdezest
      rs = stmt.executeQuery("SELECT * from varosok");

      // irassuk ki az eredmenyeket
      System.out.println("Display all results:");
      while(rs.next()){
        String id = rs.getString("id");
        String vnev = rs.getString("varosnev");
        String megye = rs.getString("megye");
        System.out.println(id + " | " + vnev + " | "+ megye);
      }

      // zarjuk a kapcsolatot
      con.close();

    // hiba eseten irassuk ki a stack-et
    }catch( Exception e ) {
      e.printStackTrace();
    }
  }
}