package com.pglab.lab;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class MySql {
Connection con; /*connection daje mozliwosc uzycia nowych metod tworzenia obiektów Statement, PreparedStatement i
CallableStatement, tak by umozliwia³y przewijanie*/
Statement stmt;
MySql(){
String sURL=new String("jdbc:mysql://localhost:3306/"); //url do mysql
String user=new String("");
String pass=new String("");
try{
Class.forName("com.mysql.jdbc.Driver"); //nazwa klasy sterownika jdbc
con=DriverManager.getConnection(sURL, user, pass); //polaczenie
stmt=con.createStatement();
stmt.executeUpdate("DROP DATABASE IF EXISTS `java` ;");
stmt.executeUpdate("CREATE DATABASE `java` DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci;");
stmt.executeUpdate("USE `java` ;");
stmt.executeUpdate("CREATE TABLE `zajecia` (`id` INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,"+
"`id_prowadz` INT( 3 ) NOT NULL ,`id_sali` INT( 3 ) NOT NULL ) ENGINE = MYISAM ;");
stmt.executeUpdate("CREATE TABLE `prowadzacy` ("+
"`id` INT( 3 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,"+
"`imie` VARCHAR( 20 ) NOT NULL ,"+
"`nazwisko` VARCHAR( 20 ) NOT NULL ,"+
"`wiek` INT( 2 ) NOT NULL"+
") ENGINE = MYISAM ;");
stmt.executeUpdate("CREATE TABLE `sala` ("+
"`id` INT( 3 ) NOT NULL AUTO_INCREMENT ,"+
"`numer` VARCHAR( 5 ) NOT NULL ,"+
"`pietro` INT( 2 ) NOT NULL ,"+
"PRIMARY KEY ( `id` )"+
") ENGINE = MYISAM ;");
for(int i=1;i<20;i++){
stmt.executeUpdate("INSERT INTO `prowadzacy` ( `id` , `imie` , `nazwisko` , `wiek` )"+
"VALUES ("+
"NULL , 'Adam"+i+"', 'Nowak"+i+"', '"+i+"'"+
");");
stmt.executeUpdate("INSERT INTO `sala` ( `id` , `numer` , `pietro` ) VALUES ( NULL, 's"+i+"', '"+i+"' );");
}
DatabaseMetaData dbmd=con.getMetaData();/*metody informujące, czy baza danych i użyty driver udostepniaja
przewijalne zbiory wynikowe (Przewijalne zbiory wynikowe umozliwiaja˛ przesuwanie kursora zarówno wprzód
jak i wstecz wzgledem aktualnej pozycji)*/
String[] ttp={"TABLE"};
ResultSet rsTabel=dbmd.getTables("java", null, null, ttp); /*pobranie informacji o tabelach(ResultSet daje nam: metody do przesuwania kursora w obie strony, wzgl˛edem aktualnej
pozycji przesuniecie kursora w ustalone miejsce wykrycie, czy zbiór jest przewijalny)*/
ResultSet rsKolumn;
while(rsTabel.next()) //dla kazdej tabeli
{
System.out.println("TABELA \""+rsTabel.getString("TABLE_NAME")+"\""); //nazwa tabeli
rsKolumn=stmt.executeQuery("SELECT * FROM "+rsTabel.getString("TABLE_NAME")+" ;"); //zapytanie o konkretna tabele
ResultSet kolumny=dbmd.getColumns("java", null, rsTabel.getString("TABLE_NAME"), null); //pobranie informacji o kolumnach dla konkretnej tabeli
while(kolumny.next()){
System.out.print(kolumny.getString("COLUMN_NAME")+" | "); //nazwy kolumn
}
System.out.println();
int l=1;
while(rsKolumn.next()){ //dla kazdego rekordu z bazy
int nCol=rsKolumn.getMetaData().getColumnCount(); //liczba kolumn
System.out.print(l++);
System.out.print(": ");
for(int i=1;i<=nCol;i++){
System.out.print(rsKolumn.getString(i)+ " | "); //dane z bazy
}
System.out.println();
}
}
stmt.executeUpdate("DROP DATABASE IF EXISTS `java` ;");
}
catch(Exception e){
System.out.println("Brak polaczenia z baza !!!");
}
}
public static void main(String[] args) {
new MySql();
}
}