İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

MetaData (ÜstVeri)

MetaData (ÜstVeri) Kavramı

Veri hakkındaki bilgiye metadata (üstveri) denir. Veritabanları bir takım verileri tutar ve gerektiğinde erişilmesine olanak verir. Bazı durumlarda tutulan veri hakkında bilgiler de gerekebilir. Örneğin Öğrenci diye bir tablo olsa, her satırında bir öğrenci gelecek şeklinde veri içerir. Bu tabloda hangi alanlar var, her bir alanın boyu ve tipi nedir gibi özellikler metadata'dır ve tablonun kendisinde yer almaz. Veritabanı gerektiğinde metada'yı ayrı bir sorgulam biçimiyle verir. Sadece tablolar hakkındaki bilgiler değil, veritabanının adı ve versiyonu gibi bilgiler, bir sorgudan dönen sonuçlar da metadata kapsamındadır.

DatabaseMetaData

Bir veritabanı hakkında bilgi Connection class'ının getMetaData() method'undan DatabaseMetaData interface'inin döndürülmesiyle alınabilir:

    DatabaseMetaData metaData=connection.getMetaData();  
    String productName=metaData.getDatabaseProductName();
    String version=metaData.getDatabaseProductVersion();
    System.out.println("Database : "+productName+" "+version);

Burada ürünün (veritabanının) adı ve versiyonu alınmaktadır. Bir veritabanındaki tablolara ait bilgi DataBaseMetaData'nın getTables() methopdundan alınabilir. Yanlız bu method oldukça fazla sayıda ve karşmaşık parametre içerir. Bu method'un dönüş değeri, alınan sonuçlara erişim için kullanılacak ResultSet nesnesidir. Sadece normal tabloların adlarını almak için

    ResultSet rs=metaData.getTables(null, null,"%",new String[]{"TABLE"});

şeklinde bir kod yeterlidir. Burada '%' hepsini al anlamına gelir.

DatabaseMetaData'nın kullanımını anlatan örneğin tamamı :
DatabaseMetaDataTest.javaİndir Göster Gizle Kopar Satır Gizle Satır Göster

  1 package com.godoro.samples.jdbc;
  2 import java.sql.*;
  3 public class DatabaseMetaDataTest {
  4     
  5   public static void main(String[] args)
  6     throws Exception
  7   {
  8     String driverClass="sun.jdbc.odbc.JdbcOdbcDriver";     
  9     Class.forName(driverClass);       
 10     String url="jdbc:odbc:mydatasource";     
 11     String username="sa";
 12     String password="godoro";
 13     Connection connection = DriverManager.getConnection(url,username,password);
 14     System.out.println("Connected to database");          
 15     
 16     DatabaseMetaData metaData=connection.getMetaData();  
 17     String productName=metaData.getDatabaseProductName();
 18     String version=metaData.getDatabaseProductVersion();
 19     
 20     System.out.println("Database : "+productName+" "+version);
 21         
 22     ResultSet rs=metaData.getTables(null, null,"%",new String[]{"TABLE"});
 23     System.out.println("Tablo ?simleri");
 24     while(rs.next()){
 25        System.out.println(rs.getString("TABLE_NAME"));
 26     }
 27   }
 28     
 29 }

ResultSetMetaData

Bir sorgudan dönen sonuçlar hakkında bilgi almak için ResultSet'in getMetaData() methodu kullanılır.Aşağıdaki örnek dönen sonuçların kolon isimleri ve tiplerini ekrana basmaktadır :
ResultSetMetaDataTest.javaİndir Göster Gizle Kopar Satır Gizle Satır Göster

  1 package com.godoro.samples.jdbc;
  2 import java.sql.*;
  3 public class ResultSetMetaDataTest {
  4     
  5   public static void main(String[] args)
  6     throws Exception
  7   {
  8     String driverClass="sun.jdbc.odbc.JdbcOdbcDriver";     
  9     Class.forName(driverClass);       
 10     String url="jdbc:odbc:mydatasource";     
 11     String username="sa";
 12     String password="godoro";
 13     Connection connection = DriverManager.getConnection(url,username,password);
 14     System.out.println("Connected to database");          
 15     
 16     Statement stmt=connection.createStatement();
 17     ResultSet rs=stmt.executeQuery("select * from BankAccount");
 18     ResultSetMetaData metadata=rs.getMetaData();
 19     System.out.println("Column count : "+metadata.getColumnCount());
 20     for(int i=1;i<metadata.getColumnCount()+1;i++){
 21         System.out.println(metadata.getColumnName(i)+" "+metadata.getColumnTypeName(i));
 22     }    
 23     
 24   }
 25     
 26 }

Dosya Listesi

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır