Java web projelerinde veritabanından veya farklı kaynaktan gelen bilgilerin sayfa üzerinde listelenmesi için datatable kullanılır.Datatable kullanımına bir örnek yapacağız,örneğimizde mysql veritabanında bir tabloda tutulan verileri sayfada göstereceğiz.
Tablodaki verileri yansıtan bir pojo yazacağız.Tabloda id,başlık,yazar ve metin adında 4 adet kolon var bu tablodan id hariç diğer verileri listeleyeceğiz.
Tablodaki verilere karşılık gelen pojo
public class Yazilar {
String yazar,baslik,metin;
//constructor yani kurucu metot ile yeni bir obje yaratırken verileri kolay bir şekilde atayabileceğiz.
public Yazilar(String yazar, String baslik, String metin) {
this.yazar = yazar;
this.baslik = baslik;
this.metin = metin;
}
public String getYazar() {
return yazar;
}
public void setYazar(String yazar) {
this.yazar = yazar;
}
public String getBaslik() {
return baslik;
}
public void setBaslik(String baslik) {
this.baslik = baslik;
}
public String getMetin() {
return metin;
}
public void setMetin(String metin) {
this.metin = metin;
}
}
Şimdi hem mysql veritabanından verileri çekmek hemde datatable ile bu verilere ulaşabilmek için bir ManagedBean yazacağız.
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import javax.faces.bean.*;
import java.io.Serializable;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;
@ManagedBean(name = "database")
@RequestScoped
public class Database implements Serializable {
String baslik, yazar, metin;
public String getBaslik() {
return baslik;
}
public void setBaslik(String baslik) {
this.baslik = baslik;
}
public String getYazar() {
return yazar;
}
public void setYazar(String yazar) {
this.yazar = yazar;
}
public String getMetin() {
return metin;
}
public void setMetin(String metin) {
this.metin = metin;
}
//Yazılar sınıfından bir liste oluşturup verileri burda tutacağız
ArrayList<Yazilar> yaziListesi = new ArrayList<>();
public ArrayList<Yazilar> yazilariGetir() {
try {
Class.forName("com.mysql.jdbc.Driver");
com.mysql.jdbc.Connection conn = (com.mysql.jdbc.Connection)DriverManager.getConnection("jdbc:mysql://ipAdresi:3306/veritabani", "kullaniciadi", "parola");
String query = "SELECT * FROM yazilar";
java.sql.Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
//Sonuçlar içerisinde dönerek verileri listeye ekliyoruz
while (rs.next()) {
String yazar = rs.getString("yazar");
String baslik = rs.getString("baslik");
String metin = rs.getString("yazi");
yaziListesi.add(new Yazilar(yazar, baslik, metin));
}
st.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
//Datatable bir dizi veya listi alıp işleyebilir bizde bir liste göndereceğiz
return yaziListesi;
}
}
Şimdi ise datatable ekleyeceğimiz jsf sayfamız
package com.mesutpiskin;
public class Yazilar {
String yazar,baslik,metin;
//constructor yani kurucu metot ile yeni bir obje yaratırken verileri kolay bir şekilde atayabileceğiz.
public Yazilar(String yazar, String baslik, String metin) {
this.yazar = yazar;
this.baslik = baslik;
this.metin = metin;
}
public String getYazar() {
return yazar;
}
public void setYazar(String yazar) {
this.yazar = yazar;
}
public String getBaslik() {
return baslik;
}
public void setBaslik(String baslik) {
this.baslik = baslik;
}
public String getMetin() {
return metin;
}
public void setMetin(String metin) {
this.metin = metin;
}
}
Çalıştırdığımızda tablodaki verilerimizi sayfa üzerinde görüntüleyebileceğiz.
Please enable JavaScript to view the comments powered by Disqus.