Merhaba arkadaşlar ben Emrah DEDEOĞLU bugün ki dersimizde JTable’da database’den çekilen verileri listelemeyi anlatacağım
Projemizin Adı: EclipseJTable
Databaseimizin adı: ders1
Tablomuzun adı: personel
Sutunları: id, adi, soyadi
TestWorking.java;
packagetr.org.eclipseturkiye.emrah.test;
importjavax.swing.SwingUtilities;
importtr.org.eclipseturkiye.emrah.db.RecordDao;
importtr.org.eclipseturkiye.emrah.ui.MainFrame;
public class TestWorking {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MainFrame();
RecordDao.initTable();
}
});
}
}
MainFrameGui.java Arayüz Kısmı
packagetr.org.eclipseturkiye.emrah.ui;
importjava.awt.BorderLayout;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JScrollPane;
importjavax.swing.JTable;
importjavax.swing.JTextField;
importjavax.swing.table.DefaultTableModel;
importtr.org.eclipseturkiye.emrah.db.RecordDao;
importtr.org.eclipseturkiye.emrah.domain.PersonelDomain;
public class MainFrameextends JFrame {
public MainFrame() {
initFrame();
}
public void initFrame() {
JPanel panel = initPanel();
add(panel);
setTitle("eclipseturkiye.blogspot.com");
pack();
setVisible(true);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public JPanel initPanel() {
JPanel panel = new JPanel(new BorderLayout());
JPanel kayitPanel = new JPanel(new GridLayout(3, 2, 2, 2));
JLabel adiJLabel = new JLabel("Adı:", JLabel.RIGHT);
kayitPanel.add(adiJLabel);
final JTextField adiField = new JTextField(10);
kayitPanel.add(adiField);
JLabel soyadiJLabel = new JLabel("Soyadı:", JLabel.RIGHT);
kayitPanel.add(soyadiJLabel);
final JTextField soyadiField = new JTextField(10);
kayitPanel.add(soyadiField);
JButton kaydetButton = new JButton("Kaydet");
kayitPanel.add(kaydetButton);
kaydetButton.addActionListener(newActionListener() {
public voidactionPerformed(ActionEvent arg0) {
PersonelDomain kisiDomain = new PersonelDomain();
kisiDomain.setAdi(adiField.getText());
kisiDomain.setSoyadi(soyadiField.getText());
RecordDao.insertUser(kisiDomain);
System.out.println("Kayıt Başarılı");
}
});
String dizi[] = { "id", "adi", "soyadi" };
DefaultTableModel model = new DefaultTableModel(dizi, 0);
JTable table = new JTable(model);
JScrollPane pane = new JScrollPane(table);
/**LİSTELEME ALGORİTMASI**/
for(PersonelDomain list : RecordDao.listele()){
model.addRow(list.getObjects());
}
panel.add(kayitPanel, BorderLayout.CENTER);
panel.add(pane, BorderLayout.SOUTH);
return panel;
}
}
PersonelDomain.java
packagetr.org.eclipseturkiye.emrah.domain;
public class PersonelDomain {
private int id;
private String adi;
private String soyadi;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAdi() {
return adi;
}
public void setAdi(String adi) {
this.adi = adi;
}
public String getSoyadi() {
return soyadi;
}
public voidsetSoyadi(String soyadi) {
this.soyadi = soyadi;
}
/**ListelemeyiSağlamak object dizi döndüren method belirledik**/
public Object [] getObjects(){
Object [] listveriler = {id,adi,soyadi};
return listveriler;
}
}
RecordDao.java
packagetr.org.eclipseturkiye.emrah.db;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
import java.util.List;
importtr.org.eclipseturkiye.emrah.domain.PersonelDomain;
public class RecordDao {
private static String url = "jdbc:mysql://localhost/ders1?useUnicode=true&characterEncoding=UTF-8";
private static String user = "root";
private static String pass = "";
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch(ClassNotFoundException e) {
// TODOAuto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection() {
Connection conn = null;
try {
conn = DriverManager.getConnection(url, user, pass);
} catch (SQLException e) {
// TODOAuto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void initTable() {
try {
Connection conn = getConnection();
Statement sorgu = conn.createStatement();
sorgu.executeUpdate("CREATE TABLE personel(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, adi VARCHAR (50) NOT NULL, soyadi VARCHAR(50) NOT NULL) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_turkish_ci");
sorgu.close();
conn.close();
} catch (SQLException e) {
// TODOAuto-generated catch block
// e.printStackTrace();
}
}
public static void insertUser(PersonelDomain kayit) {
try {
Connection conn = getConnection();
Statement stmt = conn.createStatement();
stmt.executeUpdate("INSERT INTO personel (adi, soyadi) VALUES ('"
+ kayit.getAdi() + "','" + kayit.getSoyadi() + "')");
stmt.close();
conn.close();
} catch (SQLException e) {
// TODOAuto-generated catch block
// e.printStackTrace();
}
}
public static List<PersonelDomain> listele() {
List<PersonelDomain> liste = new ArrayList<PersonelDomain>();
try {
Connection conn = getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM personel");
while (rs.next()) {
PersonelDomain siradakiKisiDomain = new PersonelDomain();
siradakiKisiDomain.setId(rs.getInt("id"));
siradakiKisiDomain.setAdi(rs.getString("adi"));
siradakiKisiDomain.setSoyadi(rs.getString("soyadi"));
liste.add(siradakiKisiDomain);
}
stmt.close();
conn.close();
} catch (SQLException e) {
System.out.println(e);
}
return liste;
}
}
Arkadaşlar kısaca projenin tüm kaynak kodları bu şekilde… bizim için önemli olan Üç kısım var.
Biri arayüz de listelemeyi sağlayan döngü, 2 Domainde object olarak verileri çekmeyi sağlayan Object dizi diğeri ise RecordDao da listeleme yapan kod;
Şimdi bu önemli yerleri sizinle paylaşıyorum;
Database Kısmı
public static List<PersonelDomain> listele() {
List<PersonelDomain> liste = new ArrayList<PersonelDomain>();
try {
Connection conn = getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM personel");
while (rs.next()) {
PersonelDomain siradakiKisiDomain = new PersonelDomain();
siradakiKisiDomain.setId(rs.getInt("id"));
siradakiKisiDomain.setAdi(rs.getString("adi"));
siradakiKisiDomain.setSoyadi(rs.getString("soyadi"));
liste.add(siradakiKisiDomain);
}
stmt.close();
conn.close();
} catch (SQLException e) {
System.out.println(e);
}
return liste;
}
}
Domain Kısmı;
/**Listelemeyi Sağlamakiçin object dizi döndüren method belirledik**/
public Object [] getObjects(){
Object [] listveriler = {id,adi,soyadi};
return listveriler;
}
}
Arayüz Kısmı;
/**LİSTELEME ALGORİTMASI
*for ile RecordDao class’ın da bulunan listele methodunda ki veriler DefaultTable model içerisine atılıyor.
**/
for(PersonelDomain list : RecordDao.listele()){
model.addRow(list.getObjects());
}
Bu üç durumu gerçekleştirdikten sonra JTable da veriler listelenecektir.
Kısaca JTable’da listeleme bu şekilde gerçekleşmektedir.
Not: Bu Ders Emrah DEDEOĞLU tarafından yazılmıştır içerisinde kullanılan örnekler denenmiş ve olumlu sonuç alınmıştır.
Rica ederiz. iyi çalışmalar
YanıtlaSil