Evet bundan önceki yazımızda java ile veritabanı işlemlerini gerçekleştiren sınıflarımızı oluşturmuştuk. Bu yazımda ise, gelen sorular üzerine veritabanından çekilen verileri jTable içerisinde görüntülemeyi anlatacağım. Öncelikle şunu belirteyim daha önce c#, vb.net gibi dillerde programlama yaptıysanız datatable, dataset gibi kontrolleri arıyor olabilirsiniz. Fakat java içerisinde bu kavramlar yer almıyor. O zaman nasıl verilerimizi tabloda göstereceğiz, adım adım anlatalım.
Öncelikle formumuzu tasarlıyoruz. Tasarım yaparken bir GUI kullanmakta fayda. Öncelikle jScrollpane’i jFrame’in içine yerleştirelim. jScrollpane tablonun kaydırma işlemleri için gerekli olacak. Daha sonra jTable’ı jScrollpane’in içerisine koyarak uygun şekilde boyutlandırıyoruz. jTable’ın ismini(variable) “table” olarak değiştirelim. Son olarak tablomuzu doldurmak için bir adet jButton’a ihtiyacımız olacak. İşlemleri sırayla yaptığınızda aşağıdaki gibi bir ekran görüntüsü elde edeceksiniz. Tabi tablo içerisinde ki verileri saymazsak.
OgrenciListeleDao.java
package com.anaokulotomasyonu.sultan.db;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.anaokulotomasyonu.sultan.domain.OgrenciKayitDomain;
public class OgrenciKayitDao {
public static void tabloyuOlustur() {
Connection con = ConnectionToDb.getConnection();
try {
Statement stmt = con.createStatement();
stmt.executeUpdate(
"CREATE TABLE ogrenci(id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1) ,tcNo VARCHAR(50),adi VARCHAR(50),soyadi VARCHAR(50),tarih VARCHAR(50),veliAdi VARCHAR(50),telefon VARCHAR(50),adres VARCHAR(100),onKayit VARCHAR(50),taksit VARCHAR(50))");
stmt.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
System.out.println("öğrenci tablosu Zaten var");
}
}
public static void ekle(OgrenciKayitDomain eklenecekOgrenciDomain) {
Connection con = ConnectionToDb.getConnection();
try {
PreparedStatement sorgu = con.prepareStatement(
"INSERT INTO ogrenci(tcNo,adi,soyadi,tarih,veliAdi,telefon,adres,onKayit,taksit) VALUES(?,?,?,?,?,?,?,?,?)");
sorgu.setString(1, eklenecekOgrenciDomain.getTcNo());
sorgu.setString(2, eklenecekOgrenciDomain.getAdi());
sorgu.setString(3, eklenecekOgrenciDomain.getSoyadi());
sorgu.setString(4, eklenecekOgrenciDomain.getTarih());
sorgu.setString(5, eklenecekOgrenciDomain.getVeliAdi());
sorgu.setString(6, eklenecekOgrenciDomain.getTelefon());
sorgu.setString(7, eklenecekOgrenciDomain.getAdres());
sorgu.setString(8, eklenecekOgrenciDomain.getOnKayit());
sorgu.setString(9, eklenecekOgrenciDomain.getTaksit());
sorgu.executeUpdate();
sorgu.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void sil(OgrenciKayitDomain silinecekOgrenciDomain) {
Connection con = ConnectionToDb.getConnection();
try {
PreparedStatement sorgu = con.prepareStatement("DELETE FROM ogrenci WHERE id = ?");
sorgu.setInt(1, silinecekOgrenciDomain.getId());
sorgu.executeUpdate();
sorgu.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static List<OgrenciKayitDomain> listele() {
List<OgrenciKayitDomain> liste = new ArrayList<OgrenciKayitDomain>();
Connection con = ConnectionToDb.getConnection();
try {
Statement sorgu = con.createStatement();
ResultSet veriler = sorgu.executeQuery("SELECT * FROM ogrenci");
while (veriler.next()) {
OgrenciKayitDomain siradakiOgrenciDomain = new OgrenciKayitDomain();
siradakiOgrenciDomain.setId(veriler.getInt("id"));
siradakiOgrenciDomain.setTcNo(veriler.getString("tcNo"));
siradakiOgrenciDomain.setAdi(veriler.getString("adi"));
siradakiOgrenciDomain.setSoyadi(veriler.getString("soyadi"));
siradakiOgrenciDomain.setTarih(veriler.getString("tarih"));
siradakiOgrenciDomain.setVeliAdi(veriler.getString("veliAdi"));
siradakiOgrenciDomain.setTelefon(veriler.getString("telefon"));
siradakiOgrenciDomain.setAdres(veriler.getString("adres"));
siradakiOgrenciDomain.setOnKayit(veriler.getString("onKayit"));
siradakiOgrenciDomain.setTaksit(veriler.getString("taksit"));
liste.add(siradakiOgrenciDomain);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return liste;
}
}
Son olarak tabloyuDoldur metodumuzu buttonun “actionPerformed” eventi içerisinden çağırıyoruz. Verilerimiz tablonun içerisinde yukarda gördüğünüz şekilde doldurulacak.