12 Mayıs 2016 Perşembe

Veritabanına Bağlantı Oluşturulması

Bu aşamada ve bundan sonraki veritabanı işlemlerinde JAVA dilinde bulunna java.sql.* paketini kullanıyoruz. Bu paket için
import java.sql.*;
satırını kodumuzun başına ekliyoruz.
Bağlantıyı oluşturmak için java.sql.Connection sınıfından (class) bir nesne (object) oluşturuyoruz. Bu işlem için aşağıdaki satırı kullanabiliriz:
 Connection con = DriverManager.getConnection(
"jdbc:derby://localhost:1527/xyz;user=sadi;password=evren;");
Bağlantının kapatılması
Son olarak JAVA ile veritabanı arasındaki bağlantının kapatılması gerekir. Bu işlem için
con.close();
satırı kullanılabilir.
Tam çalışır kod
Yukarıdaki verilen parçalı ve açıklamalı kodun tamamı aşağıda tek adımda verilmiştir. Yukarıdaki koda ilave olarak çeşitli satırlarda try / catch blokları ile SQLException yakalandığına dikkat ediniz. Bunun sebebi beklenmedik bir durumda JAVA‘nın SQLException catch edilmesini zorunlu tutmasıdır.
import java.sql.*;
/**
 *
 * @author shedai
 */
public class dbAbstract {
    Connection con;
    public void close() {
         try{
              con.close();
         }
         catch(Exception e){}
 }
 public dbAbstract(){
     try{
     con = DriverManager.getConnection(
        "jdbc:derby://localhost:1527/xyz;user=sadi;password=evren;");
     }
     catch(SQLException exp){
        exp.printStackTrace();
     }
 }
 public boolean Authenticate(String User,String Pass){
     try{
          Statement sta = con.createStatement();
          ResultSet res = sta.executeQuery(
          "SELECT * FROM USERTABLE where USERNAME='"+User+"';");
          while (res.next()) {
             if(Pass.equals(res.getString("PASSWORD")))
              return true;
      }
      res.close();
      sta.close();
      return false;
     }catch(SQLException exp){
         exp.printStackTrace();
         return false;
     }
 }
}

Veri Tabanı bağlantısından bilgileri JTAble'a çekerek görsel olarak gösteren kod
Betül Hanımın sorusu üzerine aşağıdaki kodu yazdım ve basitçe veri tabanından veri çekip JFrame içerisindeki bir JTable bileşenine (component) ekliyoruz.

import java.sql.*;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.JTable;
/**
 *
 * @author shedai
 */
public class NewClass {
    Connection con;
    public void close() {
         try{
              con.close();
         }
         catch(Exception e){}
 }

 public NewClass(){
     try{
    con = DriverManager.getConnection( "jdbc:mysql://localhost/deneme", "root", "" );  
     }
     catch(SQLException exp){
        exp.printStackTrace();
     }
 }
 JTable jt;
 public void tablo(){
     try{
          Statement sta = con.createStatement();
          ResultSet res = sta.executeQuery(
          "SELECT * FROM persons");
          Vector satirlar = new Vector();
          Vector satir[] = new Vector[2];
          satir[0] = new Vector();
          satir[1] = new Vector();
          int s = 0;
          while (res.next()) {

              for(int i = 1;i<6;i++){
               satir[s].add(res.getString(i));
                System.out.println(res.getString(i));
              }
              s++;

          }
          satirlar.add(satir[0]);
          satirlar.add(satir[1]);
          Vector basliklar = new Vector();
          basliklar.add("id");
          basliklar.add("soyisim");
          basliklar.add("isim");
          basliklar.add("adres");
          basliklar.add("şehir");
          jt = new JTable(satirlar,basliklar);

      res.close();
      sta.close();

     }catch(SQLException exp){
         exp.printStackTrace();

     }
 }
 public static void main(String args[]){
     NewClass nc = new NewClass();
     nc.tablo();
     JFrame jf = new JFrame();
    jf.add(nc.jt);
    jf.setVisible(true);

 }
 }
Öncelikle, hazır yeni bir kod yazıyorken, MySQL bağlantısını da örneklendirmiş olmak için kodu, MySQL sunucusna bağlanan şekilde yazdım. MySQL sunucunda öncelikle deneme isminde bir tablo oluşturduk:
CREATE TABLE IF NOT EXISTS `persons` (
`P_Id` int(11) NOT NULL,
`LastName` varchar(255) NOT NULL,
`FirstName` varchar(255) DEFAULT NULL,
`Address` varchar(255) DEFAULT NULL,
`City` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Kodun çalışmasının ardından ekran çıktısı aşağıdaki şekildedir:

Hiç yorum yok:

Yorum Gönder