際際滷

際際滷Share a Scribd company logo
Hal脹 Y脹kama Takip Otomasyonu R-5


Sistem Analizi ve Tasar脹m Dersi Bitirme Projesi

               RECEP GLL
                 108104020
Ana Pencere
                                                     Ana       penceremin
                                                   g旦r端n端m端nde          bir
                                                   deiiklik yaparak son
                                                   gelen hal脹lar脹 JList
                                                   kullanarak listeledim.
                                                   Bu hem pencereye
                                                   g旦rsellik katacak hem
                                                   de kullan脹c脹n脹n son
                                                   gelen hal脹lar脹 g旦rmesini
                                                   salayacakt脹r.




Ayr脹ca sol panelde-s脹k kullan脹lanlar men端s端nde t端m m端terileri
listeleyen bir tablo bulunmaktad脹r.
Java Look And Feel Nedir?
Farkl脹 pencere g旦r端n端mleri salamak i巽in kullan脹lan bir swing k端t端phanesi
旦gesidir. Javada yaz脹lm脹 bir program脹 ilk 巽al脹t脹rd脹脹m脹z zaman sade bir java
g旦r端n端m端 sunmaktad脹r. Bunu deitirebiliriz. Ben penceremi The Nimbus Look
And Feel 脹 kullanarak deitirdim bunun i巽in u kodlar脹 yazmak yeterlidir

 try {
 for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
 if ("Nimbus".equals(info.getName())) {
 UIManager.setLookAndFeel(info.getClassName());
 break;
 }
 }
 } catch (Exception e) {
 }


     Yukar脹daki kodlar脹 ana penceremi oluturduum kod bloklar脹nda
     bulunan initPencere(); metoduna yazd脹脹mda      b端t端n a巽脹lan
     pencerelerin temas脹 deimi oldu.
VER聴 TABANI OLUTURMA VE VER聴LER聴 KAYDETME


                 Veri Taban脹n脹n Oluturulaca脹 Ara Y端z




           Veri taban脹m脹 wamp server ara y端z端nde tasarlad脹m. Wamp
server program脹n脹 http://www.wampserver.com/en/          adresinden
indirebiliriz. Bu program脹 bilgisayar脹ma kurduktan sonra varsay脹lan
taray脹c脹mda a巽t脹m. G旦r端n端m端 u ekildedir
Veri Taban脹n脹n Oluturulaca脹 Ara Y端z
Wamp Server Hakk脹nda
         Verilen adresten indirip kurduktan sonra;
startWampServer iconuna t脹klay脹p 巽al脹t脹rd脹ktan
sonra ara巽 巽ubuumuza simgesi gelir bu simge yeil
ise 巽al脹t脹r脹labilir durumda-d脹r aksi halde program
a巽脹lmaz.
         Program脹 a巽mak i巽in icona sa t脹klay脹p php
MyAdmin se巽enei se巽ilir ve yukar脹daki resim gibi bir
pencere a巽脹l脹r.
Veri Taban脹 ve Tablo Oluturma

         Program a巽脹ld脹ktan sonra veri tabanlar脹 sekmesine t脹klan脹r. Buradan
oluturaca脹m脹z veri taban脹n脹n ad脹 yaz脹l脹p kaydedilir bir veri taban脹 oluturulmutur.




        Buradan utf8_turkish se巽ilerse T端rk巽e karakterleri de destekler
Tablo Oluturma
          Tablo i巽inse; Oluturulan veri taban脹na t脹klan脹r ve tablo sekmesine
t脹klan脹r ve oluturulacak tablo ka巽 s端tundan oluacaksa s端tun say脹s脹 ve tablo
ad脹 yaz脹l脹r sonra kaydedilir.
Tablo Oluturma
          Kar脹m脹za aa脹daki gibi bir tablo oluturma penceresi a巽脹l脹r. Burada s端tun
isimleri yaz脹l脹r ve karakter se巽imleri yap脹l脹r. Birincil anahtar se巽imi i巽in 聴NDEX a巽脹l脹r
penceresinden PR聴MARY se巽ilir. Artan s脹ralama i巽in A_I se巽enei tikli olmas脹
gerekir. Bu b旦l端me kullan脹c脹 veri girii yapamaz otomatik artan say脹 s脹ralamas脹
vard脹r.
Veri Taban脹na Kay脹t Ekleme




         Oluturduumuz veri taban脹 ile balant脹 kurabilmek i巽in Mysql
Connector.jar dosyas脹n脹 tan脹tmak gerekir bu konnekt旦r端
http://www.mysql.com/products/connector/ adresinden indirebiliriz
Veri Taban脹na Kay脹t Ekleme



Dosyay脹 tan脹tma i巽in aa脹daki ilemeler yap脹l脹r
Veri Taban脹na Kay脹t Ekleme
Veri Taban脹na Kay脹t Ekleme




       A巽脹lan pencereden Add External Jars... t脹klan脹r. A巽脹lan
pencereden konnekt旦r se巽ilir ve tamam butonuna t脹klan脹r. Mysql
Konnekt旦r tan脹t脹lm脹t脹r.
Veri Taban脹na Kay脹t Ekleme

                Oluturulan haliyikamatakip veri taban脹nda m端teriler tablosu
     oluturulduktan sonra; Eclipse ara y端z端 tekrar a巽脹larak bir dataBase paketi
     ve i巽erisinde ayr脹 bir s脹n脹f oluturdum.
                Bu s脹n脹f i巽erisinde veri taban脹na balanmak i巽in balat脹 Stringleri
     oluturmak gerekir bu da u ekilde dir.


private final String yol = "jdbc:mysql://localhost/haliyikamatakip";
         private final String kullaniciAdi = "root";
         private final String sifre = "";




                 Alt脹 巽izili olan kod b端t端n端 veri taban脹na balanaca脹 veri
        taban脹 adresini i巽ermektedir.
Veri Taban脹na Kay脹t Ekleme


Statement sorgu = baglanti.createStatement();

sorgu.executeUpdate("INSERT INTO musteriler(adi, ikinciadi, soyadi, adresi, telefonu, ikincitelefonu)
                                      VALUES('"+ yeniKisi.getAdi()
                                               + "','"
                                               + yeniKisi.getIkinciAdi()
                                               + "','"
                                               + yeniKisi.getSoyadi()
                                               + "','"
                                               + yeniKisi.getAdresi()
                                               + "','"
                                               + yeniKisi.getIkinciTelefonu()
                                               + "','"
                                               + yeniKisi.getIkinciTelefonu() + "')");
                           sorgu.close();
                           baglanti.close();


              Girilen verilerin veri taban脹na eklemek i巽in ise yukar脹daki kodlar
     kullan脹lmaktad脹r.
Veri Taban脹na Kay脹t Ekleme
       M端teriyi eklemek i巽inse tamam butonuna t脹klad脹脹m脹zda
kaydetmesi i巽in
Veri Taban脹na Kay脹t Ekleme


okButton.addActionListener(new ActionListener()
                           public void actionPerformed(ActionEvent arg0) {

MysqlJdbcBaglantisiYap veriTabani = new MysqlJdbcBaglantisiYap();
MusteriDomain yeniKisi = new MusteriDomain();
            yeniKisi.setAdi(adiField.getText());
                                      yeniKisi.setIkinciAdi(ikinciAdiField.getText());
        yeniKisi.setSoyadi(soyadiField.getText());
        yeniKisi.setAdresi(adresiField.getText());
        yeniKisi.setTelefonu(telefonuField.getText());
        yeniKisi.setIkinciTelefonu(ikinciTelefonuField.getText());

         veriTabani.yeniKayit(yeniKisi);



                             }
                   });
Veri Taban脹ndan Veri a脹rma G旦sterme

Veri taban脹na eklenen verileri bulabilmek i巽in aa脹daki pencere tasarlanm脹t脹r.




                                                   Textfielda girilen verinin veri
                                                   taban脹nda arat脹l脹p listede
                                                   g旦r端lmesini salayan kodlar u
                                                   ekildedir.
Veri Taban脹ndan Veri a脹rma G旦sterme

final JTextField bulField = new JTextField(40);
final JList musterilerList = new JList();
JScrollPane musteriPane = new JScrollPane(musterilerList);
           Yukar脹daki kodlar ile men端 旦geleri oluturulur.
bulField.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent arg0) {
                    }
                    public void keyReleased(KeyEvent arg0) {
                                MysqlJdbcBaglantisiYap veriTabani = new
MysqlJdbcBaglantisiYap();

                            List<MusteriDomain> bulunanlarListesi =
veriTabani.musteriBul(bulField.getText());

         musterilerList.setListData(bulunanlarListesi.toArray());
                  }
                  public void keyPressed(KeyEvent arg0) {

                   }
         });
Veri Taban脹ndan Veri a脹rma G旦sterme
Ancak bu kodlar脹n kodlar脹n 巽al脹abilmesi i巽in veri taban脹 s脹n脹f脹m脹za u metodu yazmam脹z
gerekmektedir.


 public MusteriDomain kayitBul(String adSoyad) {
                   MusteriDomain bulunanKisi = null;
                   Connection baglanti = getConnection();
                   try {Statement sorgu = baglanti.createStatement();
          ResultSet rs = sorgu.executeQuery("SELECT * FROM kisiler WHERE adi LIKE
 '"+ adSoyad + "%' OR soyadi LIKE '" + adSoyad + "%' ");
                             while (rs.next()) {
                                       bulunanKisi = new MusteriDomain();
                             }
                             sorgu.close();
                             baglanti.close();
                   } catch (SQLException e) {
                             // TODO Auto-generated catch block
                             e.printStackTrace();
                   }
                   return bulunanKisi;
          }
Yap脹lan Hatalar Ve neriler



  al脹t脹脹m脹z projeyi yedek almay脹
           unutmamal脹y脹z.
M端mk端nse yedek ilemini birden fazla
          ayg脹ta yapmal脹y脹z
Veri taban脹 Balant脹 S脹ras脹nda Yap脹lan Hatalar




private final String yol = "jdbc:mysql://localhost/haliyikamatakip";




         Balant脹 stringi yukar脹daki gibidir fakat adresi yanl脹
         yazd脹脹m脹zda     veri taban脹 ile balant脹 kurulmaz program
         hataya d端er
okButton.addActionListener(new ActionListener()
                           public void actionPerformed(ActionEvent arg0) {

MysqlJdbcBaglantisiYap veriTabani = new MysqlJdbcBaglantisiYap();
MusteriDomain yeniKisi = new MusteriDomain();
        yeniKisi.setAdi(adiField.getText());
                                      yeniKisi.setIkinciAdi(ikinciAdiField.getText());
        yeniKisi.setSoyadi(soyadiField.getText());
        yeniKisi.setAdresi(adresiField.getText());
        yeniKisi.setTelefonu(telefonuField.getText());
        yeniKisi.setIkinciTelefonu(ikinciTelefonuField.getText());

         veriTabani.yeniKayit(yeniKisi);



                             }
                   });



               Bu kodlar ise kaydet butonuna t脹klad脹脹m脹zda yap脹lacak ilemi
     belirler M端terilerDomain s脹n脹f脹 ile ilikilidir ilem kolayl脹脹 salar fakat
     ilikide hata    yapmamak i巽in      kod yaz脹m脹nda ctrl+space tuunu
     kullanmakta fayda vard脹r. Ayr脹ca textFieldlar 脹n isimleri doru yaz脹lmal脹d脹r
     yoksa program yine hataya d端er.
Veri Taban脹 聴巽in T端rk巽e Karakter Salanmas脹


                Veri taban脹m脹z i巽in yol belirtirken yazd脹脹m脹z kodlara bir
         ekleme yaparak T端rk巽e karakter uygunluu verebiliriz. Bu da u
ekildedir;



private final String yol =
"jdbc:mysql://localhost/haliyikamatakip?characterEncoding=UTF
8&useUnicode=true";



                   Alt脹 巽izili olan kod yaz脹lmazsa aa脹daki pencerede ki gibi
bir g旦r端nt端 oluur. Unicode ise t端m karakterleri i巽erisinde      bar脹nd脹r脹r
Veri Taban脹 聴巽in T端rk巽e Karakter Salanmas脹




        Desteklenmeyen karakterler soru iareti ?
        ile g旦sterilir bu bir hata deildir.
Recep proje 5

More Related Content

Recep proje 5

  • 1. Hal脹 Y脹kama Takip Otomasyonu R-5 Sistem Analizi ve Tasar脹m Dersi Bitirme Projesi RECEP GLL 108104020
  • 2. Ana Pencere Ana penceremin g旦r端n端m端nde bir deiiklik yaparak son gelen hal脹lar脹 JList kullanarak listeledim. Bu hem pencereye g旦rsellik katacak hem de kullan脹c脹n脹n son gelen hal脹lar脹 g旦rmesini salayacakt脹r. Ayr脹ca sol panelde-s脹k kullan脹lanlar men端s端nde t端m m端terileri listeleyen bir tablo bulunmaktad脹r.
  • 3. Java Look And Feel Nedir? Farkl脹 pencere g旦r端n端mleri salamak i巽in kullan脹lan bir swing k端t端phanesi 旦gesidir. Javada yaz脹lm脹 bir program脹 ilk 巽al脹t脹rd脹脹m脹z zaman sade bir java g旦r端n端m端 sunmaktad脹r. Bunu deitirebiliriz. Ben penceremi The Nimbus Look And Feel 脹 kullanarak deitirdim bunun i巽in u kodlar脹 yazmak yeterlidir try { for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (Exception e) { } Yukar脹daki kodlar脹 ana penceremi oluturduum kod bloklar脹nda bulunan initPencere(); metoduna yazd脹脹mda b端t端n a巽脹lan pencerelerin temas脹 deimi oldu.
  • 4. VER聴 TABANI OLUTURMA VE VER聴LER聴 KAYDETME Veri Taban脹n脹n Oluturulaca脹 Ara Y端z Veri taban脹m脹 wamp server ara y端z端nde tasarlad脹m. Wamp server program脹n脹 http://www.wampserver.com/en/ adresinden indirebiliriz. Bu program脹 bilgisayar脹ma kurduktan sonra varsay脹lan taray脹c脹mda a巽t脹m. G旦r端n端m端 u ekildedir
  • 6. Wamp Server Hakk脹nda Verilen adresten indirip kurduktan sonra; startWampServer iconuna t脹klay脹p 巽al脹t脹rd脹ktan sonra ara巽 巽ubuumuza simgesi gelir bu simge yeil ise 巽al脹t脹r脹labilir durumda-d脹r aksi halde program a巽脹lmaz. Program脹 a巽mak i巽in icona sa t脹klay脹p php MyAdmin se巽enei se巽ilir ve yukar脹daki resim gibi bir pencere a巽脹l脹r.
  • 7. Veri Taban脹 ve Tablo Oluturma Program a巽脹ld脹ktan sonra veri tabanlar脹 sekmesine t脹klan脹r. Buradan oluturaca脹m脹z veri taban脹n脹n ad脹 yaz脹l脹p kaydedilir bir veri taban脹 oluturulmutur. Buradan utf8_turkish se巽ilerse T端rk巽e karakterleri de destekler
  • 8. Tablo Oluturma Tablo i巽inse; Oluturulan veri taban脹na t脹klan脹r ve tablo sekmesine t脹klan脹r ve oluturulacak tablo ka巽 s端tundan oluacaksa s端tun say脹s脹 ve tablo ad脹 yaz脹l脹r sonra kaydedilir.
  • 9. Tablo Oluturma Kar脹m脹za aa脹daki gibi bir tablo oluturma penceresi a巽脹l脹r. Burada s端tun isimleri yaz脹l脹r ve karakter se巽imleri yap脹l脹r. Birincil anahtar se巽imi i巽in 聴NDEX a巽脹l脹r penceresinden PR聴MARY se巽ilir. Artan s脹ralama i巽in A_I se巽enei tikli olmas脹 gerekir. Bu b旦l端me kullan脹c脹 veri girii yapamaz otomatik artan say脹 s脹ralamas脹 vard脹r.
  • 10. Veri Taban脹na Kay脹t Ekleme Oluturduumuz veri taban脹 ile balant脹 kurabilmek i巽in Mysql Connector.jar dosyas脹n脹 tan脹tmak gerekir bu konnekt旦r端 http://www.mysql.com/products/connector/ adresinden indirebiliriz
  • 11. Veri Taban脹na Kay脹t Ekleme Dosyay脹 tan脹tma i巽in aa脹daki ilemeler yap脹l脹r
  • 13. Veri Taban脹na Kay脹t Ekleme A巽脹lan pencereden Add External Jars... t脹klan脹r. A巽脹lan pencereden konnekt旦r se巽ilir ve tamam butonuna t脹klan脹r. Mysql Konnekt旦r tan脹t脹lm脹t脹r.
  • 14. Veri Taban脹na Kay脹t Ekleme Oluturulan haliyikamatakip veri taban脹nda m端teriler tablosu oluturulduktan sonra; Eclipse ara y端z端 tekrar a巽脹larak bir dataBase paketi ve i巽erisinde ayr脹 bir s脹n脹f oluturdum. Bu s脹n脹f i巽erisinde veri taban脹na balanmak i巽in balat脹 Stringleri oluturmak gerekir bu da u ekilde dir. private final String yol = "jdbc:mysql://localhost/haliyikamatakip"; private final String kullaniciAdi = "root"; private final String sifre = ""; Alt脹 巽izili olan kod b端t端n端 veri taban脹na balanaca脹 veri taban脹 adresini i巽ermektedir.
  • 15. Veri Taban脹na Kay脹t Ekleme Statement sorgu = baglanti.createStatement(); sorgu.executeUpdate("INSERT INTO musteriler(adi, ikinciadi, soyadi, adresi, telefonu, ikincitelefonu) VALUES('"+ yeniKisi.getAdi() + "','" + yeniKisi.getIkinciAdi() + "','" + yeniKisi.getSoyadi() + "','" + yeniKisi.getAdresi() + "','" + yeniKisi.getIkinciTelefonu() + "','" + yeniKisi.getIkinciTelefonu() + "')"); sorgu.close(); baglanti.close(); Girilen verilerin veri taban脹na eklemek i巽in ise yukar脹daki kodlar kullan脹lmaktad脹r.
  • 16. Veri Taban脹na Kay脹t Ekleme M端teriyi eklemek i巽inse tamam butonuna t脹klad脹脹m脹zda kaydetmesi i巽in
  • 17. Veri Taban脹na Kay脹t Ekleme okButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) { MysqlJdbcBaglantisiYap veriTabani = new MysqlJdbcBaglantisiYap(); MusteriDomain yeniKisi = new MusteriDomain(); yeniKisi.setAdi(adiField.getText()); yeniKisi.setIkinciAdi(ikinciAdiField.getText()); yeniKisi.setSoyadi(soyadiField.getText()); yeniKisi.setAdresi(adresiField.getText()); yeniKisi.setTelefonu(telefonuField.getText()); yeniKisi.setIkinciTelefonu(ikinciTelefonuField.getText()); veriTabani.yeniKayit(yeniKisi); } });
  • 18. Veri Taban脹ndan Veri a脹rma G旦sterme Veri taban脹na eklenen verileri bulabilmek i巽in aa脹daki pencere tasarlanm脹t脹r. Textfielda girilen verinin veri taban脹nda arat脹l脹p listede g旦r端lmesini salayan kodlar u ekildedir.
  • 19. Veri Taban脹ndan Veri a脹rma G旦sterme final JTextField bulField = new JTextField(40); final JList musterilerList = new JList(); JScrollPane musteriPane = new JScrollPane(musterilerList); Yukar脹daki kodlar ile men端 旦geleri oluturulur. bulField.addKeyListener(new KeyListener() { public void keyTyped(KeyEvent arg0) { } public void keyReleased(KeyEvent arg0) { MysqlJdbcBaglantisiYap veriTabani = new MysqlJdbcBaglantisiYap(); List<MusteriDomain> bulunanlarListesi = veriTabani.musteriBul(bulField.getText()); musterilerList.setListData(bulunanlarListesi.toArray()); } public void keyPressed(KeyEvent arg0) { } });
  • 20. Veri Taban脹ndan Veri a脹rma G旦sterme Ancak bu kodlar脹n kodlar脹n 巽al脹abilmesi i巽in veri taban脹 s脹n脹f脹m脹za u metodu yazmam脹z gerekmektedir. public MusteriDomain kayitBul(String adSoyad) { MusteriDomain bulunanKisi = null; Connection baglanti = getConnection(); try {Statement sorgu = baglanti.createStatement(); ResultSet rs = sorgu.executeQuery("SELECT * FROM kisiler WHERE adi LIKE '"+ adSoyad + "%' OR soyadi LIKE '" + adSoyad + "%' "); while (rs.next()) { bulunanKisi = new MusteriDomain(); } sorgu.close(); baglanti.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return bulunanKisi; }
  • 21. Yap脹lan Hatalar Ve neriler al脹t脹脹m脹z projeyi yedek almay脹 unutmamal脹y脹z. M端mk端nse yedek ilemini birden fazla ayg脹ta yapmal脹y脹z
  • 22. Veri taban脹 Balant脹 S脹ras脹nda Yap脹lan Hatalar private final String yol = "jdbc:mysql://localhost/haliyikamatakip"; Balant脹 stringi yukar脹daki gibidir fakat adresi yanl脹 yazd脹脹m脹zda veri taban脹 ile balant脹 kurulmaz program hataya d端er
  • 23. okButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent arg0) { MysqlJdbcBaglantisiYap veriTabani = new MysqlJdbcBaglantisiYap(); MusteriDomain yeniKisi = new MusteriDomain(); yeniKisi.setAdi(adiField.getText()); yeniKisi.setIkinciAdi(ikinciAdiField.getText()); yeniKisi.setSoyadi(soyadiField.getText()); yeniKisi.setAdresi(adresiField.getText()); yeniKisi.setTelefonu(telefonuField.getText()); yeniKisi.setIkinciTelefonu(ikinciTelefonuField.getText()); veriTabani.yeniKayit(yeniKisi); } }); Bu kodlar ise kaydet butonuna t脹klad脹脹m脹zda yap脹lacak ilemi belirler M端terilerDomain s脹n脹f脹 ile ilikilidir ilem kolayl脹脹 salar fakat ilikide hata yapmamak i巽in kod yaz脹m脹nda ctrl+space tuunu kullanmakta fayda vard脹r. Ayr脹ca textFieldlar 脹n isimleri doru yaz脹lmal脹d脹r yoksa program yine hataya d端er.
  • 24. Veri Taban脹 聴巽in T端rk巽e Karakter Salanmas脹 Veri taban脹m脹z i巽in yol belirtirken yazd脹脹m脹z kodlara bir ekleme yaparak T端rk巽e karakter uygunluu verebiliriz. Bu da u ekildedir; private final String yol = "jdbc:mysql://localhost/haliyikamatakip?characterEncoding=UTF 8&useUnicode=true"; Alt脹 巽izili olan kod yaz脹lmazsa aa脹daki pencerede ki gibi bir g旦r端nt端 oluur. Unicode ise t端m karakterleri i巽erisinde bar脹nd脹r脹r
  • 25. Veri Taban脹 聴巽in T端rk巽e Karakter Salanmas脹 Desteklenmeyen karakterler soru iareti ? ile g旦sterilir bu bir hata deildir.