Zakladne veci o JDBC

JDBC  to je Java DataBase Connectivity. 

Co mozme pomocou JDBC robit:

Instalacia Connector/J MySQL JDBC Driver

Najprv treba nainstalovat Java(TM) 2 SDK.

Skopirujte tento subor do priecinka kde je nainstalovany j2sdk/jre/lib/ext

Skuska spravnosti ci sme zlozitu instalaciu spravili spravne:

Na otestovanie pristupu k databaze sluzi tento priklad uvedeny nizsie. Ak sa nainstalovat podarilo tak vam program oznami dobru spravu :).

Na pracu s java subormi mozte pouzit Gel.

Priklad na otestovanie pripojenia k databaze:

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

    public class JdbcExample2 {

    public static void main(String args[]) {
    Connection con = null;

    try {   
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        con = DriverManager.getConnection("jdbc:mysql:///test", "root", "secret"); 

        if(!con.isClosed())
        System.out.println("Successfully connected to MySQL server using TCP/IP...");

        } catch(Exception e) {    
            System.err.println("Exception: " + e.getMessage());
    } finally {
        try {
            if(con != null)
            con.close();
        } catch(SQLException e) {}
        }
        }
    }

Ako pracovat v databaze pomocou Javy

Driver s ktorym chceme pracovat inicializujeme nasledovne

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

Pristup k databaze zas tymto prikazom

    Connection con = null;

    con = DriverManager.getConnection("jdbc:mysql:///examples","root", "secret");

    kde prva premenna specifikuje databazu, druha uzivatela pomocou ktoreho donej vstupujem a tretia heslo. Ak sa pripajame na databazu na lokalnom pc mozme pouzit tento prikaz. Ak sa chceme pripojit na skolsku mozme posuzit

    con = DriverManager.getConnection("jdbc:mysql://s.ics.upjs.sk/","skola", "skola");

Vykonavanie prikazov

    ResultSet rs = null;

    rs = st.executeQuery("SELECT * FROM users");

    ak chceme vykonavat v tabulkach zmeny Insert, Udate, Delete pouzijeme

    int recordsUpdated;

    recordsUpdated = st.executeUpdate("DELETE FROM users WHERE user_id = 1");

Co ponuka ResultSet:

Poskytuje akési programové browsovanie po relácii, ktorú nám vrátil príkaz executeQuery. Na začiatku je kurzor na prvom riadku relácie.


Príkazy:


first - choď s kurzorom na prvý riadok relácie.
next - choď s kurzorom na ďalší riadok relácie.
last - choď s kurzorom na posledný riadok relácie.
get funkcie: je to sada funkcií tvaru getType (napr. getInt, getChar apod.). Každá vracia príslušný dátový typ podľa svojho názvu. Parametrom týchto funkcií je column index resp. column name príslušnej relácie. Tieto funkcie slúžia na vytiahnutie údaju z konkrétneho stĺpca relácie z riadku kde sa nachádza kurzor.
update funkcie: podobne ako get funkcie ale slúžia na zápis údajov. Tieto príkazy je možné ale spúšťať len ak DB podporuje update databázy priamo zo SELECTU.
funkcia getMetaData - vracia objekt typu ResultSetMetaData, v ktorom je možné zistiť rôzne dôležité informácie o našej relácii, ako napr. počet riadkov, či stĺpcov, dátové typy jednotlivých stĺpcov a pod.

Jednoduchy priklad z ktore som cerpal aj tieto priklady nejdete tu. Try it :).

Druhy priklad na vyskusanie nejakych prikazov.

import java.sql.*;

public class JdbcExample3 {

public static void main(String args[]) {
Connection con = null;
Statement st = null;
ResultSet rs = null;
int recordsUpdated;


try {
    Class.forName("com.mysql.jdbc.Driver").newInstance();    
    con = DriverManager.getConnection("jdbc:mysql:///examples","root", "secret");

    st = con.createStatement();
    // rs = st.executeQuery("select * from users where user_id=1");
    recordsUpdated = st.executeUpdate("DELETE FROM users WHERE user_id = 2");

    while(rs.next()) {
        int userId = rs.getInt(1);
        String firstName = rs.getString(2);
        String lastName = rs.getString(3);
        String countryCode = rs.getString(4);

        System.out.println(userId + ". " + lastName + ", " +firstName + " (" + countryCode + ")");
    }

    } catch (Exception e) {
    System.err.println("Exception: " + e.getMessage());
    } finally {
    try {
        if(rs != null)
        rs.close();
        if(st != null)
        st.close();
        if(con != null)
        con.close();
    } catch (SQLException e) {
    }
    }
  }
}

Uloha: Pokuste sa napisat jednoduchy program na editaciu Sql prikazov v Jave.

Naspat