<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to JDBC</title><link>https://sourceforge.net/p/serializer203/wiki/JDBC/</link><description>Recent changes to JDBC</description><atom:link href="https://sourceforge.net/p/serializer203/wiki/JDBC/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 03 Jun 2012 12:06:46 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/serializer203/wiki/JDBC/feed" rel="self" type="application/rss+xml"/><item><title>WikiPage JDBC modified by PGaczynski</title><link>https://sourceforge.net/p/serializer203/wiki/JDBC/</link><description>import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class JDBCTutorial {
	
	public static void main(String [] args) throws SQLException{
		
		
		/* Tutorial nawiazania polaczenia do bazy danych oraz wykonywania polecen SQL.
		 * W ponizszym tutorialu przedstawiam sposob na polaczenie z baza danych Oracle.
		 * W projekcie bedziemy wykorzystywac co prawda baze danych H2, ale sposob polaczenia
		 * w wypadku obu baz jest identyczny. Moim zdaniem latwiej bedzie wam zrozumiec
		 * mechanizmy JDBC przedstawione na tabelach, ktorych uzywamy na cwiczeniach z baz.
		 * 
		 * 
		 */
		try {
			
			/* Dane do rejestracj klasy sterownika bazy danych. Istnieje 
                         * alternatywna metoda
			 * polegajaca na odpowiednim skonfigurowaniu wlasciwosci jdbc.property, ale ta
			 * wydaje mi sie prostsza. Sterownik odpowiedni dla danej bazy danych powinien
			 * znajdowac sie na stronie jej producenta.
			 * Nalezy pamietac, zeby sciagnac sterownik odpowiedni dla naszej wersji javy.
			 * 
			 */
			String driver ="oracle.jdbc.OracleDriver";  
			/*
			 * Ponizsze parametry to kolejno: adres, nazwa uzytkownika oraz haslo w
                         * bazie danych.
			 */
			String url ="jdbc:oracle:thin:@localhost";
			String username = "pablo";
			String password = "12345";
			
			Connection conn=null;
			/*
			 * Wyzej wspomniana rejestracja klasy sterownika
			 */
			Class.forName(driver) ;

			/*
			 * Nawiazanie polaczenia z baza. Tutaj wykorzystalem inny sposob 
                         * podawania danych
			 * dostepowych do bazy. Aby wykorzystac wyzej zdefiniowane stringi 
                         * nalezy wywolac
			 * Driver.getConnection(url, username, password)
			 * 
			 */
			conn = DriverManager.getConnection("jdbc:oracle:thin:pablo/12345@localhost:1521:XE"); 
			/*
			 * Stworzenie obiektu wykorzystywanego do wykonywania zapytań i innych
                         * poleceń SQL
			 */
			
			Statement stat = conn.createStatement();
			
			/*
			 * Wykonanie polecenie sql. Wynik bedziemy wam wszystkim bardzo dobrze
                         * znany z laboratorium BD.
			 * Obiekt ResultSet jest zwracany przez metode executeQuery() 
                         * jako zbior wynikow
			 * zapytania SQL.
			 */
			
			ResultSet result = stat.executeQuery("SELECT * FROM EMP");
			System.out.println("Empno  |  Ename  |  Job  |  Mgr  |  Hiredate |  Sal  |  Comm  |  Deptno");
			/*
			 * Petla umozliwiajaca pobranie wynikow zapytania powyzszego.  
                         * ResultSet dziala na podobnej
			 * zasadzie co java.util.Iterator. Najwazniejsze informacje:
			 * Iterator klasy ResultSet znajduje sie poczatkowo na pozycji
                         * poprzedzajacej pierwszy wiersz.
			 * Aby przesunac go na pozycje pierwszego rekordu musimy wywolac 
                         * metode next(). W przeciwienstwie
			 * do java.util.Iterator, klasa ta nie posiada hasNext(). 
                         * Dlatego tez wywolujemy ja do momentu, gdy zwroci false.
			 */
			while(result.next()){
				/*
				 * Wyswietlenie wynikow w postaci lancuchow znakowych.
				 * WAZNE: indeksujemy od 1, a nie od 0!
				 * ISTOTNE: procz metod getString() ResultSet posiada inne metody 
                                 * przeznaczone do zwracania innych typow np. getDouble()
				 */
				System.out.println(result.getString(1) + " " + result.getString(2) + " " + result.getString(3) + " " + result.getString(4)+ " " + result.getString(5) + " " + result.getString(6) + " " + result.getString(7) + " " + result.getString(8));
			}
			result.close();
			
			/*
			 * executeUpdate() - jest przeznaczona do wykonywania polecen jezyka 
                         * SQL typu: INSERT, UPDATE, DELETE lub CREATE TABLE
			 */
			stat.executeUpdate("CREATE TABLE Tescik (Wiadomosc VARCHAR2(20))");
			stat.executeUpdate("INSERT INTO Tescik (Wiadomosc) VALUES ('Hello')");
			
			ResultSet result2 = stat.executeQuery("SELECT * FROM Tescik");
			while(result2.next()){
				System.out.println(result2.getString(1));
			}
			stat.executeUpdate("DROP TABLE Tescik");
			/*
			 * zamkniecie obiektu zbiorow wynikow zapytania
			 */
			result.close();
			result2.close();
			/*
			 * zamkniecie polaczenia do bazy danych
			 */
			conn.close();
			/*
			 * zamkniecie obiektu polecenia
			 */
			stat.close();
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		
		
		
		
	}

}
</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">PGaczynski</dc:creator><pubDate>Sun, 03 Jun 2012 12:06:46 -0000</pubDate><guid>https://sourceforge.net48c71b23d5bc5bc05c0051390cd77d426780be9a</guid></item></channel></rss>