Java Veritabanı Uygulaması Bölüm 3: Teknik Servis Yetkili Sayfası

Java programlamada GUI ve veritabanı işlemlerini birleştirme niteliği taşıyan Teknik Servis programının son bölümünde yetkili sayfasını oluşturacağız. Yetkili sayfasının genel özelliklerinden bahsedip kodlama kısmına geçelim. Ardından da projenin tamamlanmış halinin kaynak kodlarını indirebilirsiniz.

Yetkili sayfasında sizlerin de tahmin ettiği gibi, ürün ekleme ve güncelleme işlemlerini gerçekleştiriyor. Güncelleme işlemleri için yine bir “bilgileri getir” butonu textbox ve combox’ lara veritabanından bilgileri çekiyor. Yapılan değişiklikler de (kullanıcı adında değişiklik yapılamaz) güncelle butonuyla kaydediliyor. Yeni kayıt işleminde ise yapılacaklar oldukça basit veritabanı işlemlerinden ibarettir.

Teknik servis programının son yazısı olması dolayısıyla, yetkiliSayfasi.java classınn yanında bir de ana class olarak da adlandırabileceğimiz mainTeknikServis.java classını da vereceğim. mainTeknikServis.java classı, main metodunu içeriyor. Dolayısıyla program başlangıcında bu class içindeki main metodu çalıştırılıyor. Main metodu içinden girisEkrani.java classı ve bu class içinden yapılan seçime göre de kullanıcı yetkiliSayfasi.java ya da musteriSayfasi.java classlarından birine yönlendiriliyor. Aşağıdan yetkiliSayfasi.java ve mainTeknikServis.java classlarının kodlarını inceleyebilirsiniz.

NOT: Bu uygulamanın kaynak kodlarını ve demosunu buradan indirebilirsiniz. Programın demosu, dist klasörü içindeki TeknikServis.jar dosyasıdır. Yetkili sayfasına giriş için;

Kullanıcı adı: Admin

Şifre: 12345

Bu yetkili girişi ile veri ekleyebilir ve eklediğiniz ürün bilgilerini, kullanıcı bilgileri ile müşteri sayfasından sorgulayabilirsiniz

(İkinci bölüm için tıklayınız.)

yetkiliSayfasi.java

[cc lang=’java’ ]
package teknikservis;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.sql.*;

public class yetkiliSayfasi extends JFrame
{
    JFrame frame;
    JPanel pnl, pnl_yetkili, pnl_arama;
    JComboBox cb_yGarantiKapsami, cb_yDurumu;
    JTextField txt_listele, txt_arama, txt_yKullaniciAdi, txt_ySifre, txt_yCihazModeli, txt_yCihazArizasi, txt_yVerilisTarihi, txt_yAdres;
    JLabel lbl_yKullaniciAdi, lbl_ySifre, lbl_yCihazModeli, lbl_yCihazArizasi, lbl_yVerilisTarihi,
            lbl_yGarantiKapsami, lbl_yDurumu, lbl_yAdres, lbl_yPaneliAdi;
    JButton btn_bilgileriGetir, btn_yetkiliCikis, btn_duzenle, btn_yeniKayit;
    public yetkiliSayfasi()
    {
        frame=new JFrame(“yetkili”);
        frame.setBounds(100, 100, 500, 500);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        lbl_yPaneliAdi = new JLabel(“Yetkili Kontrol Paneli”);
        lbl_yPaneliAdi.setFont(new Font(“arial”, Font.BOLD, 15));
        lbl_yPaneliAdi.setBounds(10, 2, 300, 20);
        frame.add(lbl_yPaneliAdi);
        yetkiliPaneliOlustur();
        frame.add(pnl_yetkili);
    }

    public void yetkiliPaneliOlustur()
    {
        pnl_yetkili =new JPanel();
        pnl_yetkili.setBackground(Color.lightGray);
        pnl_yetkili.setBounds(100, 100, 500, 500);
        pnl_yetkili.setLayout(null);
        
        //Nesneler oluşturuluyor
        lbl_yKullaniciAdi   = new JLabel(“Kullanıcı Adı”);
        lbl_yKullaniciAdi.  setBounds(10, 35, 200, 20);
        txt_yKullaniciAdi   = new JTextField();
        txt_yKullaniciAdi.  setBounds(170, 35, 270, 20);
        btn_bilgileriGetir  =new JButton(“Bilgileri Getir”);
        btn_bilgileriGetir. setBounds(170, 60, 150, 30);
        lbl_ySifre          =new JLabel(“Kullanıcı Şifresi”);
        lbl_ySifre.         setBounds(10, 95, 200, 20);
        txt_ySifre          =new JTextField();
        txt_ySifre.         setBounds(170, 95, 270, 20);
        lbl_yCihazModeli    = new JLabel(“Cihazın Modeli”);
        lbl_yCihazModeli.   setBounds(10, 120, 200, 20);
        txt_yCihazModeli    = new JTextField();
        txt_yCihazModeli.   setBounds(170, 120, 270, 20);
        lbl_yCihazArizasi   = new JLabel(“Cihazın Arızasi”);
        lbl_yCihazArizasi.  setBounds(10, 145, 200, 20);
        txt_yCihazArizasi   = new JTextField();
        txt_yCihazArizasi.  setBounds(170, 145, 270, 20);
        lbl_yVerilisTarihi  = new JLabel(“Alım Tarihi”);
        lbl_yVerilisTarihi. setBounds(10, 170, 200, 20);
        txt_yVerilisTarihi  = new JTextField();
        txt_yVerilisTarihi. setBounds(170, 170, 270, 20);
        lbl_yGarantiKapsami = new JLabel(“Garanti Durumu”);
        lbl_yGarantiKapsami.setBounds(10, 195, 200, 20);
        cb_yGarantiKapsami  = new JComboBox();
        cb_yGarantiKapsami. setModel(new DefaultComboBoxModel(new String[]{“Garanti Kapsamında”, “Garanti Kapsamında Değil”}));
        cb_yGarantiKapsami. setSelectedIndex(1);
        cb_yGarantiKapsami. setBounds(170, 195, 270, 20);
        lbl_yDurumu         = new JLabel(“Arıza Durumu”);
        lbl_yDurumu.        setBounds(10, 220, 200, 20);
        cb_yDurumu          = new JComboBox();
        cb_yDurumu.         setModel(new DefaultComboBoxModel(new String[]{“Arıza Giderildi”, “Arıza Giderilmedi”}));
        cb_yDurumu.         setSelectedIndex(1);
        cb_yDurumu.         setBounds(170, 220, 270, 20);
        lbl_yAdres          = new JLabel(“Adres”);
        lbl_yAdres.         setBounds(10, 245, 200, 20);
        txt_yAdres          = new JTextField();
        txt_yAdres.         setBounds(170, 245, 270, 20);
        btn_yeniKayit       =new JButton(“Kaydet”);
        btn_yeniKayit.      setBounds(170, 270, 90, 30);
        btn_duzenle         =new JButton(“Güncelle”);
        btn_duzenle.        setBounds(260, 270, 90, 30);
        btn_yetkiliCikis    = new JButton(“Çıkış”);
        btn_yetkiliCikis.   setBounds(350, 270, 90, 30);

        //Panele nesneler ekleniyor
        pnl_yetkili.add(lbl_yKullaniciAdi);
        pnl_yetkili.add(txt_yKullaniciAdi);
        pnl_yetkili.add(btn_bilgileriGetir);
        pnl_yetkili.add(lbl_ySifre);
        pnl_yetkili.add(txt_ySifre);
        pnl_yetkili.add(lbl_yCihazModeli);
        pnl_yetkili.add(txt_yCihazModeli);
        pnl_yetkili.add(lbl_yCihazArizasi);
        pnl_yetkili.add(txt_yCihazArizasi);
        pnl_yetkili.add(lbl_yVerilisTarihi);
        pnl_yetkili.add(txt_yVerilisTarihi);
        pnl_yetkili.add(lbl_yGarantiKapsami);
        pnl_yetkili.add(cb_yGarantiKapsami);
        pnl_yetkili.add(lbl_yDurumu);
        pnl_yetkili.add(cb_yDurumu);
        pnl_yetkili.add(lbl_yAdres);
        pnl_yetkili.add(txt_yAdres);
        pnl_yetkili.add(btn_yeniKayit);
        pnl_yetkili.add(btn_duzenle);
        pnl_yetkili.add(btn_yetkiliCikis);
        
        // Bilgiler ilgili nesnelere veritabanından çekiliyor
        btn_bilgileriGetir.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try
                {
                    Class.forName(“com.mysql.jdbc.Driver”).newInstance();
                    System.out.print(“sürücü yüklendi”);
                    Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/teknikServis”, “root”, “”);
                    Statement komut = conn.createStatement();
                    ResultSet rs = komut.executeQuery(“select * from tb_bilgiler where kullaniciAdi= ‘” +txt_yKullaniciAdi.getText()+ “‘” );    //bilgileri çek
                    //ResultSet rs = komut.executeQuery(“select * from tb_bilgiler order by kullaniciAdi”);
                    while (rs.next())
                    {
                            txt_ySifre.setText(rs.getString(“sifre”));
                            txt_yCihazModeli.setText(rs.getString(“cihazModeli”)) ;
                            txt_yCihazArizasi.setText(rs.getString(“cihazArizasi”));
                            txt_yVerilisTarihi.setText(rs.getString(“verilisTarihi”));
                            if(rs.getInt(“garantiKapsami”)==1)
                            {
                                cb_yGarantiKapsami.setSelectedIndex(1); //Garanti Kapsamında
                            }
                            else
                            {
                                cb_yGarantiKapsami.setSelectedIndex(0); //Garanti Kapsamında değil
                            }
                            if(rs.getInt(“Durumu”)==1)
                            {
                                cb_yDurumu.setSelectedIndex(1); //Arıza Giderildi
                            }
                            else
                            {
                                cb_yDurumu.setSelectedIndex(0); // Arıza  Giderilmedi
                            }
                            txt_yAdres.setText(rs.getString(“adres”));
                        //}
                    }
                    conn.close();
                }
                catch (Exception s)
                {
                    System.out.print(s.getMessage());
                }
            }
        }
        );

        // Güncelleme işlemi yapılıyor
        btn_duzenle.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try
                {
                    Class.forName(“com.mysql.jdbc.Driver”).newInstance();
                    System.out.print(“sürücü yüklendi”);
                    Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/teknikServis”, “root”, “”);
                    Statement komut = conn.createStatement();
                    String sorgu = “update tb_bilgiler set sifre = ‘” + txt_ySifre.getText() + “‘, cihazModeli= ‘”
                        + txt_yCihazModeli.getText()+ “‘, cihazArizasi= ‘”+ txt_yCihazArizasi.getText() + “‘, verilisTarihi= ‘”
                        + txt_yVerilisTarihi.getText() + “‘, garantiKapsami= ‘”+ cb_yGarantiKapsami.getSelectedIndex()
                        + “‘, Durumu = ‘” + cb_yDurumu.getSelectedIndex()+ “‘, adres= ‘”+ txt_yAdres.getText()
                        + “‘ where kullaniciAdi= ‘” + txt_yKullaniciAdi.getText() + “‘” ;
                    komut.executeUpdate(sorgu);    //bilgileri çek

                    conn.close();
                }
                catch (Exception s)
                {
                    System.out.print(s.getMessage());
                }
            }
        }
        );

        // Yeni ürün kaydı yapılıyor
        btn_yeniKayit.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try
                {
                    Class.forName(“com.mysql.jdbc.Driver”).newInstance();
                    System.out.print(“sürücü yüklendi”);
                    Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/teknikServis”, “root”, “”);
                    Statement komut = conn.createStatement();
                    String sorgu=”insert into tb_bilgiler ”
                        + “(kullaniciAdi, sifre, cihazModeli, cihazArizasi, verilisTarihi, garantiKapsami, Durumu, adres)”
                        + “VALUES (‘” +txt_yKullaniciAdi.getText()+ “‘,'”+ txt_ySifre.getText() + “‘,'”
                        + txt_yCihazModeli.getText()+ “‘,'”+ txt_yCihazArizasi.getText() + “‘,'”
                        + txt_yVerilisTarihi.getText() + “‘,'”+ cb_yGarantiKapsami.getSelectedIndex() + “‘,'”
                        + cb_yDurumu.getSelectedIndex()+ “‘,'”+ txt_yAdres.getText() + “‘)”;
                    komut.executeUpdate(sorgu);    //bilgileri çek
                    conn.close();
                }
                catch (Exception s)
                {
                    System.out.print(s.getMessage());
                }
            }
        }
        );

        // Çıkış
        btn_yetkiliCikis.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {                
                girisEkrani gE = new girisEkrani();
                frame.setVisible(false);
            }
        }
         );
    }    
}[/cc]

mainTeknikServis.java

[cc lang=’java’ ]
package teknikservis;
import java.sql.*;
import javax.swing.*;
public class mainTeknikServis
{    
public static void main(String args[])    
{       
girisEkrani gE=new girisEkrani();
}
}
[/cc]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir